gpt4 book ai didi

azure - 如何解决 COPY failed : file not found in build context or excluded in Azure Pipeline?

转载 作者:行者123 更新时间:2023-12-04 12:15:46 25 4
gpt4 key购买 nike

我遇到了有关 azure 管道的非常有趣的问题。问题是“构建上下文之外的禁止路径”。如果 Dockerfile 中有指向另一个目录的添加行,则镜像的构建会失败并显示消息“禁止路径”。我该如何解决这个问题?

我最近尝试 Dockerize 一个 C# 项目,因此我向该项目添加了一个 docker 文件夹,并创建了一个简单的 Dockerfile 来开始使用,如下所示:

错误:

f83e9c616794: Pulling fs layer
9887694812e5: Pulling fs layer
9887694812e5: Verifying Checksum
9887694812e5: Download complete
dd4da9d953fb: Verifying Checksum
dd4da9d953fb: Download complete
f83e9c616794: Verifying Checksum
f83e9c616794: Download complete
dd4da9d953fb: Pull complete
f83e9c616794: Pull complete
9887694812e5: Pull complete
Digest: sha256:85ea9832ae26c70618418cf7c699186776ad066d88770fd6fd1edea9b260379a
Status: Downloaded newer image for mcr.microsoft.com/dotnet/sdk:5.0
---> bd73c72c93a1
Step 5/25 : WORKDIR /src
---> Running in b457b1934a7e
Removing intermediate container b457b1934a7e
---> a50c5df6f929
Step 6/25 : COPY ["./src/xxxxx.Web/xxxxx.Web.csproj", "src/xxxxx.Web/"]
COPY failed: file not found in build context or excluded by .dockerignore: stat src/xxxxx.Web/xxxxx.Web.csproj: file does not exist
##[error]COPY failed: file not found in build context or excluded by .dockerignore: stat src/xxxxx.Web/xxxxx.Web.csproj: file does not exist
##[error]The process '/usr/bin/docker' failed with exit code 1
Finishing: Build and push an image to container registry

DockerFiles/Dockerfile.xxxxx.Web:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["src/xxxxx.Web/xxxxx.Web.csproj", "src/xxxxx.Web/"]
RUN dotnet restore "src/xxxxx.Web/xxxxx.Web.csproj"
COPY . .
WORKDIR "/src/src/xxxxx.Web"
RUN dotnet build "xxxxx.Web.csproj" -c Release -o /app

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

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

azure-pipeline.yml:

 # Deploy to Azure Kubernetes Service
# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes Service
# https://learn.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- test


variables:

# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
imageRepository: 'xxxxxxxx'
containerRegistry: 'xxxxxxxxxxxx.azurecr.io'
dockerfilePath: '**/DockerFiles/Dockerfile.xxxxx.Web'
tag: '$(Build.BuildNumber)'

# Agent VM image name
vmImageName: 'ubuntu-latest'


stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)

- publish: manifests
artifact: manifests

- stage: Deploy
displayName: Deploy stage
dependsOn: Build

jobs:
- deployment: Deploy
displayName: Deploy-xxxxx.Web
pool:
vmImage: $(vmImageName)
environment: 'xxxxx-5982.default'
strategy:
runOnce:
deploy:
steps:


- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
manifests: |
$(Pipeline.Workspace)/manifests/deployment.eventhub.web.yml
$(Pipeline.Workspace)/manifests/service.eventhub.web.yml
containers: |
$(containerRegistry)/$(imageRepository):$(tag)

如何解决“复制失败:构建上下文之外的禁止路径”? 我想使用 DockerFiles 目录中的 Dockerfile。

最佳答案

您可以尝试在 Docker 任务中添加 buildContext 参数。

buildContext :构建上下文的路径

这是一个case可以引用一下。

关于azure - 如何解决 COPY failed : file not found in build context or excluded in Azure Pipeline?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67296022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com