Visual studio 无法生成由Visual Studio 2019-Docker和Azure创建的Dockerfile
在Visual Studio 2019中右键单击我的web api.NET Core 2.2并创建Visual studio 无法生成由Visual Studio 2019-Docker和Azure创建的Dockerfile,visual-studio,azure,docker,Visual Studio,Azure,Docker,在Visual Studio 2019中右键单击我的web api.NET Core 2.2并创建docker文件后,我发现我无法使用名称和标记手动执行docker构建。我得到的是一个巨大的图像(大约1.8gb),带有和作为ID和标签 以下是步骤: 创建文件后,我从VS运行Docker,然后创建此图像:Snowdon…:dev(260mb)。但是,当我将其部署到Azure时,容器立即终止 如果我使用docker compose使用另一个映像运行映像,然后创建一个新映像:Snowdon…:late
docker文件后,我发现我无法使用名称和标记手动执行docker构建。我得到的是一个巨大的图像(大约1.8gb),带有
和
作为ID和标签
以下是步骤:
创建文件后,我从VS运行Docker,然后创建此图像:Snowdon…:dev
(260mb)。但是,当我将其部署到Azure时,容器立即终止
如果我使用docker compose使用另一个映像运行映像,然后创建一个新映像:Snowdon…:latest
(269mb),那么如果我将此映像部署到Azure,它就可以正常工作
所以,尽管我在云端工作,我想知道为什么我不能只做一个docker构建
以下是我的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
,则需要从解决方案文件(.sln
)所在的文件夹中执行此操作。那么像这样,
docker build -f project\folder\Dockerfile -t mytag:1.0 .
要使此解决方案适用于遇到此问题的任何其他人:
如果要在此基础上手动运行docker build
,则需要从解决方案文件(.sln
)所在的文件夹中执行此操作。那么像这样,
docker build -f project\folder\Dockerfile -t mytag:1.0 .
您从哪个文件夹调用docker build
?我记得当我没有从解决方案的根目录调用它时,我也遇到了同样的问题(如果我没记错的话)。因此,类似于这些内容的docker build-f myproject\path\Dockerfile.
我在Dockerfile
所在的根目录中,所以我的命令是docker build-t mynewimage.
我理解这一点。我的建议是尝试从根目录调用它;)我已经编辑了我的问题,以便您可以看到我从何处调用它。您可以试试我的建议吗?您从哪个文件夹调用docker build
?我记得当我没有从解决方案的根目录调用它时,我也遇到了同样的问题(如果我没记错的话)。因此,类似于这些内容的docker build-f myproject\path\Dockerfile.
我在Dockerfile
所在的根目录中,所以我的命令是docker build-t mynewimage.
我理解这一点。我的建议是尝试从根目录调用它;)我已经编辑了我的问题,所以你可以看到我从哪里打电话给你。那么你能试试我的建议吗?