我正在尝试在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尝试复制文件。
答案 0 :(得分:2)
像这样更改dockerfile即可解决问题:
COPY ["WebApi.csproj", "WebApi/"]