![](/img/trans.png)
[英]Azure devops CI/CD docker build COPY Failed Path not found
[英]Project not found when build docker container on Azure DevOps
我運行命令來構建 docker 映像並將其發布到注冊表,但它失敗並出現以下錯誤:
MSBUILD : error MSB1009: Project file does not exist.
Switch: ./Project.Api/Project.Api.csproj
項目結構
src
|--Project.Api
| |--Project.Api.csproj
|-- Dockerfile
tests
azure-pipelines.yml
管道中的 Docker 任務
stages:
...
- stage: build
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: build_container
displayName: 'Build docker container image'
steps:
- bash: |
docker login -u $(REGISTRY_USER) -p $REGISTRY_PASSWORD $(REGISTRY_URL)
docker build -t $(REGISTRY_URL)/$(IMAGE_REPOSITORY):kkk . -f $(build.sourcesDirectory)/src/Dockerfile
docker push $(REGISTRY_URL)/$(IMAGE_REPOSITORY):kkk
displayName: 'Build and push docker image'
env:
REGISTRY_PASSWORD: $(REGISTRY_PASSWORD)
我的 Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . /src
RUN dotnet restore ./Project.Api/Project.Api.csproj
RUN dotnet publish ./Project.Api/Project.Api.csproj --no-restore -c Release -o /app
FROM build AS publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Project.Api.dll"]
有誰知道這是導致此錯誤的原因以及如何解決? 謝謝你。
遵循標准的故障排除步驟:檢查您運行該bash
命令的目錄。 在您的 Dockerfile 中放置一個RUN ls
或類似命令,以便您可以在構建期間檢查容器中的目錄結構並確認它是您所期望的。
您的 Docker 上下文可能設置的目錄級別比您想象的要高。
您可以從那里適當地設置您的工作目錄。
- bash: |
docker ..
workingDirectory: $(build.sourcesDirectory)/src
我猜您的代碼最終會出現在 Dockerfile 的目錄/src/src/
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.