【发布时间】:2019-06-27 00:16:29
【问题描述】:
这是VS2017生成的Dockerfile。 为了在 Azure DevOps 上使用它,我做了一些改动
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["WebApi.csproj", "WebApi/"]
COPY ["./MyProject.Common/MyProject.Common.csproj", "MyProj.Common/"]
RUN dotnet restore "MyProject.WebApi/MyProject.WebApi.csproj"
COPY . .
WORKDIR "/src/MyProject.WebApi"
RUN dotnet build "MyProject.WebApi.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "MyProject.WebApi.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyProject.WebApi.dll"]
解决方案结构
MyProject.sln
-MyProject.Common
...
-MyProject.WebApi
...
Dockerfile
我已经在 Azure DevOps 下创建了一个 Build Pipeline 以通过以下步骤运行 Docker Build:
- 从 Azure Repos Git 获取源步骤
- 代理作业(托管 Ubuntu 1604)
- 命令行脚本
docker build -t WebApi .
我有这个错误
2019-02-02T18:14:33.4984638Z ---> 9af3faec3d9e
2019-02-02T18:14:33.4985440Z Step 7/17 : COPY ["./MyProject.Common/MyProject.Common.csproj", "MyProject.Common/"]
2019-02-02T18:14:33.4999594Z COPY failed: stat /var/lib/docker/tmp/docker-builder671248463/MyProject.Common/MyProject.Common.csproj: no such file or directory
2019-02-02T18:14:33.5327830Z ##[error]Bash exited with code '1'.
2019-02-02T18:14:33.5705235Z ##[section]Finishing: Command Line Script
我不明白是否必须更改 Dockerfile 中的某些内容或 DevOps 上的控制台脚本步骤
【问题讨论】:
-
它在本地工作吗?
-
我已经尝试了很多次,我迷路了。不 :( .... 所以我的问题是我不明白如何从 MyProject.WebApi 根目录开始运行 dockerfile
-
好吧,根据错误,我认为你在正确的目录中,我只是不明白为什么这个 dockerfile 暗示 myprojectcommon 是 webapi 的子目录
标签: azure docker azure-devops dockerfile azure-pipelines