AzureパイプラインDockerが複数のプロジェクトでコピーに失敗する

ロッドタリンティング

Azure devopsでアプリをビルドすると、Data.csprojのData /へのコピーが失敗します。ただし、最初のコピーコマンドであるApi.csprojからApi /へのコピーは正常に機能しています。azure-pipeline.ymlファイルでbuildContextを指定しなかったことに注意してください。しかし、buildContext、buildContext: '$(Build.Repository.LocalPath)'を追加したとき、最初のコピーでも失敗しました。

これを修正する方法についての入力や提案はありますか?buildcontextを検索して追加しようとしたか、csprojにフォルダーを追加しても機能しないようです。たとえば、COPY ["/Data/Data.csproj"、 "Data /"]

これは私のフォルダー構造です(私のazure-pipeline.ymlファイルはAppフォルダーの外にあります):

アプリ
- API / 
  - Api.csproj 
  - Dockerfile 
-データ/ 
  - Data.csproj 
-ドメイン/ 
  - Domain.csproj 
- App.sln

私のdockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src

COPY ["Api.csproj", "Api/"]
COPY ["Data.csproj", "Data/"]
COPY ["Domain.csproj", "Domain/"]
RUN dotnet restore "Api/Api.csproj"
COPY . .
WORKDIR "/src/Api"
RUN dotnet build "Api.csproj" -c Release -o /app/build

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

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

私のazure-pipeline.ymlの一部

stages:
- stage: Build
  displayName: Build stage
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: 'App'
        dockerfile: '**/Dockerfile'               
        tags: |
          $(tag)

エラーは次のとおりです。

Step 6/28 : WORKDIR /src
 ---> Running in 266a78d293ee
Removing intermediate container 266a78d293ee
 ---> 2d899fafdf05
Step 7/28 : COPY ["Api.csproj", "Api/"]
 ---> 92c8c1450c3c
Step 8/28 : COPY ["Data.csproj", "Data/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder764823890/Data.csproj: no such file or directory
##[error]COPY failed: stat /var/lib/docker/tmp/docker-builder764823890/Data.csproj: no such file or directory
##[error]The process '/usr/bin/docker' failed with exit code 1
ロッドタリンティング

さて、何度も試した後、dockerfileとazure-pipelines.ymlを変更することでこれを修正することができました。

この問題を修正したのは、buildContextを変数「$(Build.Repository.LocalPath)」ではなく「App /」に設定することで、正確な値がわからないと思います。

変更した部分を投稿します。

Dockerfile

COPY ["Api/Api.csproj", "Api/"]
COPY ["Data/Data.csproj", "Data/"]
COPY ["Domain/Domain.csproj", "Domain/"]

azure-pipelines.yml

inputs:
  command: buildAndPush
  repository: $(imageRepository)
  dockerfile: $(dockerfilePath)        
  buildContext: 'App/'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Gradleのマルチモジュールプロジェクトがコンパイルに失敗する

分類Dev

CMakeで生成されたNinjaプロジェクトがGCCでのコンパイルに失敗する

分類Dev

AzureDevOpsパイプラインが他のプロジェクトのDLLに失敗する

分類Dev

gradleがサンプルプロジェクトのコンパイルに失敗する(appcompat-v7:23.3.0)

分類Dev

EclipseがMavenプロジェクトのインポートに失敗する

分類Dev

IntellijがSBTプロジェクトのインポートに失敗する

分類Dev

プライベートホストエージェント(Azure DevOps)でDockerビルドが失敗する

分類Dev

複数のプロジェクトの単体テストをAzureDevOpsパイプライン用の1つのDockerイメージに結合する

分類Dev

Dockerが「エラーMSB1001」でAzureパイプラインのビルドに失敗する

分類Dev

6列を超えると、AzureDataファクトリのコピーパイプラインが失敗する

分類Dev

Sbtで生成されたDockerコンテナがサブプロジェクトのパッケージ化に失敗する

分類Dev

Azure DevopsazureパイプラインエージェントのTCP接続に失敗する

分類Dev

FAIL-コンテキストパス/ ROOTにアプリケーションをデプロイできませんでした。デプロイに失敗するジェンキンスのプラグインをデプロイする

分類Dev

jenkinsパイプラインプロジェクトをコピーする

分類Dev

「dotnetビルド」中にコンパイラの警告が表示された場合、.netプロジェクトのjenkinsビルドに失敗できますか?

分類Dev

Xodeプロジェクトは単純なC ++クラスのコンパイルに失敗します

分類Dev

コードベースは同じでコンテンツが異なるプロジェクトを複数のサイトにデプロイする

分類Dev

cmakeで構成されたVisualStudioプロジェクトのC ++ 11命令でコンパイラが失敗する

分類Dev

iOS用のFreeTypeFontGeneratorを使用したlibGDXプロジェクトのコンパイルが失敗する

分類Dev

Gradleプロジェクトの更新に失敗したコンパイルエラー

分類Dev

Kotlinプラグインの更新後にGradleプロジェクトの同期が失敗する

分類Dev

ソルトプロビジョナーからのnginxシェルのコンパイルが失敗する

分類Dev

iOSプロジェクトは、デプロイメントターゲット7.0のxcodebuildでのコンパイルに失敗しますが、6.0では問題ありません。Xcodeで両方をコンパイルします

分類Dev

単体テストプロジェクトが関数プロジェクトを参照すると、Azure関数ビルドパイプラインが失敗する

分類Dev

単体テストプロジェクトが関数プロジェクトを参照すると、Azure関数ビルドパイプラインが失敗する

分類Dev

マルチプロジェクトのプラグインがGrails3.2.11で失敗する

分類Dev

複数のプロジェクトを一度にコンパイルすると、「タイプ 'System.OutOfMemoryException'の例外がスローされました」

分類Dev

Eclipse Maven-コードの完了が失敗する「このコンパイルユニットはJavaプロジェクトのビルドパス上にありません」および「インデックスのダウンロードに失敗しました」エラー

分類Dev

名前を変更した後、プロジェクトのコンパイルに失敗する

Related 関連記事

  1. 1

    Gradleのマルチモジュールプロジェクトがコンパイルに失敗する

  2. 2

    CMakeで生成されたNinjaプロジェクトがGCCでのコンパイルに失敗する

  3. 3

    AzureDevOpsパイプラインが他のプロジェクトのDLLに失敗する

  4. 4

    gradleがサンプルプロジェクトのコンパイルに失敗する(appcompat-v7:23.3.0)

  5. 5

    EclipseがMavenプロジェクトのインポートに失敗する

  6. 6

    IntellijがSBTプロジェクトのインポートに失敗する

  7. 7

    プライベートホストエージェント(Azure DevOps)でDockerビルドが失敗する

  8. 8

    複数のプロジェクトの単体テストをAzureDevOpsパイプライン用の1つのDockerイメージに結合する

  9. 9

    Dockerが「エラーMSB1001」でAzureパイプラインのビルドに失敗する

  10. 10

    6列を超えると、AzureDataファクトリのコピーパイプラインが失敗する

  11. 11

    Sbtで生成されたDockerコンテナがサブプロジェクトのパッケージ化に失敗する

  12. 12

    Azure DevopsazureパイプラインエージェントのTCP接続に失敗する

  13. 13

    FAIL-コンテキストパス/ ROOTにアプリケーションをデプロイできませんでした。デプロイに失敗するジェンキンスのプラグインをデプロイする

  14. 14

    jenkinsパイプラインプロジェクトをコピーする

  15. 15

    「dotnetビルド」中にコンパイラの警告が表示された場合、.netプロジェクトのjenkinsビルドに失敗できますか?

  16. 16

    Xodeプロジェクトは単純なC ++クラスのコンパイルに失敗します

  17. 17

    コードベースは同じでコンテンツが異なるプロジェクトを複数のサイトにデプロイする

  18. 18

    cmakeで構成されたVisualStudioプロジェクトのC ++ 11命令でコンパイラが失敗する

  19. 19

    iOS用のFreeTypeFontGeneratorを使用したlibGDXプロジェクトのコンパイルが失敗する

  20. 20

    Gradleプロジェクトの更新に失敗したコンパイルエラー

  21. 21

    Kotlinプラグインの更新後にGradleプロジェクトの同期が失敗する

  22. 22

    ソルトプロビジョナーからのnginxシェルのコンパイルが失敗する

  23. 23

    iOSプロジェクトは、デプロイメントターゲット7.0のxcodebuildでのコンパイルに失敗しますが、6.0では問題ありません。Xcodeで両方をコンパイルします

  24. 24

    単体テストプロジェクトが関数プロジェクトを参照すると、Azure関数ビルドパイプラインが失敗する

  25. 25

    単体テストプロジェクトが関数プロジェクトを参照すると、Azure関数ビルドパイプラインが失敗する

  26. 26

    マルチプロジェクトのプラグインがGrails3.2.11で失敗する

  27. 27

    複数のプロジェクトを一度にコンパイルすると、「タイプ 'System.OutOfMemoryException'の例外がスローされました」

  28. 28

    Eclipse Maven-コードの完了が失敗する「このコンパイルユニットはJavaプロジェクトのビルドパス上にありません」および「インデックスのダウンロードに失敗しました」エラー

  29. 29

    名前を変更した後、プロジェクトのコンパイルに失敗する

ホットタグ

アーカイブ