【发布时间】:2018-06-08 12:46:51
【问题描述】:
如果我有一个具有多个阶段(例如基础和构建)的 docker 文件,有没有办法更改 Visual Studio 在调试容器时使用的 docker 命令 - 它似乎使用 docker 文件中的第一个构建,而不调用后续阶段。
这是我的 docker 文件:
FROM microsoft/aspnetcore:2.0.3 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0.3 AS build
WORKDIR /src
COPY *.sln ./
COPY Web/Web.csproj Web/
RUN dotnet restore
COPY . .
WORKDIR /src/Web
RUN dotnet build -c Release -o /app
FROM build AS publish
#RUN npm install
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
# Set the entry point of the application.
ENTRYPOINT ["dotnet", "Web.dll"]
当我按f5时,它将使用基础镜像创建容器,随后导致错误,因为该项目需要安装aspnetcore-build镜像的节点;我可以通过将基础映像更改为 aspnetcore-build 来解决此问题。
但是,有没有办法告诉visual studio中的项目是多阶段构建,需要使用构建呢?
我对 docker 很陌生,所以也许我遗漏了一些明显的东西。
【问题讨论】:
-
Microsoft 的多阶段构建文档令人震惊。多花两分钟,我们都可以节省时间。
-
有些人可能会发现richard-banks.org/2018/07/debugging-core-in-docker.html 有有用的信息,但并不容易找到
标签: docker visual-studio-2017 .net-core dockerfile