Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 无法生成由Visual Studio 2019-Docker和Azure创建的Dockerfile_Visual Studio_Azure_Docker - Fatal编程技术网

Visual studio 无法生成由Visual Studio 2019-Docker和Azure创建的Dockerfile

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

在Visual Studio 2019中右键单击我的web api.NET Core 2.2并创建
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.
我理解这一点。我的建议是尝试从根目录调用它;)我已经编辑了我的问题,所以你可以看到我从哪里打电话给你。那么你能试试我的建议吗?