【问题标题】:VSTS CI/CD with docker and .NET Core 2.0 - Copy failed带有 docker 和 .NET Core 2.0 的 VSTS CI/CD - 复制失败
【发布时间】:2018-06-06 21:52:50
【问题描述】:

在关注几个 .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-compose 配合得很好。

在添加 VSTS CI 构建过程并运行它时,我一直遇到副本错误。

构建 myapp 服务“myapp”失败 构建:复制失败:GetFileAttributesEx \?\C:\Windows\TEMP\docker-builder91\obj\Docker\publish: 系统找不到指定的路径。 C:\程序 Files\Docker\docker-compose.exe 失败,返回码:1

【问题讨论】:

    标签: docker azure-devops dockerfile azure-pipelines .net-core-2.0


    【解决方案1】:

    我找到的解决方法是from this blog.

    请注意,他们在 linux docker 机器上遇到了错误

    复制失败: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 流程,但我认为有更简单的方法可以解决问题。

    【讨论】:

    • 恕我直言,在 VSTS 中进行构建并将文件从那里复制到 Docker 映像会更好。虽然找不到如何做到这一点......
    • 为什么我们需要另一个 CI 文件。有什么区别?
    • 为什么?我们为什么要这样做:D 请告诉我。
    【解决方案2】:

    我设法从 VSTS 中构建服务并将它们复制到 Docker 映像。我使用 .Net Core VSTS 任务构建并发布到“obj/Docker/Publish”文件夹,并使用“Docker-compose”任务构建 docker 容器并将其发布到私有容器存储库。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2019-01-22
      • 2021-11-13
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多