【问题标题】:Docker Build Failing on Azure Pipeline due to COPY --from=build由于 COPY --from=build 导致 Azure Pipeline 上的 Docker 构建失败
【发布时间】:2019-09-24 16:01:55
【问题描述】:

大家好,我无法在 azure 构建管道中获取 COPY --from=build /src /dest。虽然它在我的本地工作......请参阅下面的代码

Dockerfile

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat 

FROM mcr.microsoft.com/dotnet/framework/sdk:4.7.2-windowsservercore-ltsc2019 AS build
WORKDIR /src

COPY . .
COPY SimpleWeb/*.csproj ./SimpleWeb/
COPY SimpleWeb/*.config ./SimpleWeb/
RUN nuget restore

COPY SimpleWeb/. ./SimpleWeb/
WORKDIR /src/SimpleWeb
RUN msbuild /p:Configuration=Release

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019 AS runtime
WORKDIR /inetpub/wwwroot
COPY --from=build /src/SimpleWeb/bin/Release/Publish/. .

Azure Pipeline.yml

# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:
- task: Docker@2
  displayName: Build
  inputs:
    containerRegistry: 'container-registry-dockerhub'
    repository: 'myrepo'
    command: 'build'
    Dockerfile: '**/Dockerfile'
    tags: 'latest'
- task: Docker@2
  displayName: Push
  inputs:
    containerRegistry: 'container-registry-dockerhub'
    repository: 'myrepo'
    command: 'push'
    tags: 'latest'

来自 Azure CI 构建的错误

Step 12/21 : COPY --from=build /src/SimpleWeb/bin/Release/Publish/. .
COPY failed: CreateFile \\?\Volume{a4952e14-500f-4d78-9efe-1a9e638e3459}\src\SimpleWeb\bin\Release\Publish: The system cannot find the path specified.
##[error]The process 'C:\Program Files\Docker\docker.exe' failed with exit code 1

-----已编辑------ 这虽然有效:

复制 --from=build /src/SimpleWeb/。 .

我不确定为什么 Azure Pipeline 上没有生成 bin/Release/Publish

【问题讨论】:

  • 您可以将您的编辑转换为答案,它可以帮助遇到相同问题的其他社区成员更轻松地找到解决方案,我们可以将这个帖子存档,谢谢。

标签: c# azure-devops azure-pipelines


【解决方案1】:

您可以尝试使用dotnet restore 代替nuget restore

nuget restore 会将所有 NuGet 依赖项下载到您的项目中。 dotnet restore 将下载所有 NuGet 依赖项以及引用和工具。

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2018-04-22
    • 2015-09-04
    • 1970-01-01
    • 2023-01-02
    • 2018-11-21
    相关资源
    最近更新 更多