[英]Visual Studio generated Dockerfile does not work with manual docker build
[英]Unable to build a Dockerfile created by Visual Studio 2019 - Docker and Azure
在Visual Studio 2019中的Web api .NET Core 2.2上右键单击并创建Dockerfile
,我发现我无法手动执行带有名称和标签的Dockerfile
docker build
。 我得到的是一张巨大的图像(大约1.8gb),其中<none>
和<none>
作为ID和标签。
这些步骤是:
创建文件后,我从VS运行Docker,然后创建此映像: Snowdon...:dev
(260mb)。 但是,当我将此部署到Azure时,容器立即终止。
如果我使用docker-compose
将图像与另一个图像一起运行,然后创建一个新图像: Snowdon...:latest
(269mb),则如果我将此图像部署到Azure,则可以正常工作。
所以,尽管我在云端工作,但我想知道为什么我不能只做一个docker build
?
这是我的Web API的Dockerfile
:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["SnowdonAPI_05/SnowdonAPI_05.csproj", "SnowdonAPI_05/"]
RUN dotnet restore "SnowdonAPI_05/SnowdonAPI_05.csproj"
COPY . .
WORKDIR "/src/SnowdonAPI_05"
RUN dotnet build "SnowdonAPI_05.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "SnowdonAPI_05.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SnowdonAPI_05.dll"]
我从这里调用build
:
要为遇到此问题的任何其他人提供解决方案:
如果您要手动在此docker build
上运行docker build
,则需要从解决方案文件( .sln
)所在的文件夹中执行此操作。 所以像这样:
docker build -f project\folder\Dockerfile -t mytag:1.0 .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.