生成Dockerfile时AzureDevops找不到csproj文件

时间:2019-11-15 17:47:24

标签: docker azure-devops

我正在尝试在AzureDevops中创建管道,所以我有以下 Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build
WORKDIR /src
COPY ["WebApi/WebApi.csproj", "WebApi/"]
RUN dotnet restore "WebApi/WebApi.csproj"
COPY . .
WORKDIR "/src/WebApi"
RUN dotnet build "WebApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApi.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApi.dll"]

当我尝试运行管道时,出现以下错误:

Step 7/17 : COPY ["WebApi/WebApi.csproj", "WebApi/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder651276881/WebApi/WebApi.csproj: no such file or directory
##[error]COPY failed: stat /var/lib/docker/tmp/docker-builder651276881/WebApi/WebApi.csproj: no such file or directory
##[error]/usr/bin/docker failed with return code: 1

我注意到,AzureDevops使用以下命令在文件夹的外部构建了Docker:

/usr/bin/docker build -f /home/vsts/work/1/s/WebApi/Dockerfile -t repository:9 /home/vsts/work/1/s/WebApi

我想我需要输入WebApi /文件夹来执行Build,因为我的Dockerfile尝试复制文件。

1 个答案:

答案 0 :(得分:2)

像这样更改dockerfile即可解决问题:

COPY ["WebApi.csproj", "WebApi/"]