docker和.NET Core 2.0的VSTS CI / CD – 复制失败
在遵循一些.NET Core 2.0 Visual Studio Team Services持续集成/持续交付示例的同时,我遇到了VSTS中的复制错误。
通过VS17添加docker支持在本地使用像这样的dockerfile。
FROM microsoft/aspnetcore:2.0 ARG source WORKDIR /app EXPOSE 80 COPY ${source:-obj/Docker/publish} . ENTRYPOINT ["dotnet", "myapp.dll"]
通过MVC应用程序和WebAPI应用程序,它可以很好地与Docker合作。
当添加一个VSTS CI构build过程并运行它时,我保持与副本的错误。
构buildmyapp服务'myapp'未能构build: COPY失败:GetFileAttributesEx \?\ C:\ Windows \ TEMP \ docker-builder91 \ obj \ Docker \ publish:系统找不到指定的path。 C:\ Program Files \ Docker \ docker-compose.exe失败,返回代码:1
我find的解决方法是从这个博客。
请注意,他们在Linuxdocker机器上遇到错误
复制失败:stat / var / lib / docker / tmp / docker -builder613328056 / obj / Docker / publish:没有这样的文件或目录/ usr / bin / docker失败,返回码:1
解:
像这样做一个Dockerfile.ci
FROM microsoft/aspnetcore-build:2.0 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM microsoft/aspnetcore:2.0 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "SiliconValve.Vsts.DockerDemo.dll"]
它还需要修改.dockerignore文件。
bin/ obj/ !*.dll !obj/Docker/publish/* !obj/Docker/empty/
这使我可以继续CI过程,但是我认为这个问题更容易解决。