Azure DevOps Maven Docker构建-can';找不到目标文件夹

Azure DevOps Maven Docker构建-can';找不到目标文件夹,docker,azure-devops,maven-3,Docker,Azure Devops,Maven 3,我是Azure Devops的新手,在构建第一条管道时遇到了一些困难。到目前为止,我有三个步骤可以很好地工作: Maven从POM构建,成功打包我的war文件 将文件复制到$(system.defaultworkingdirectory),从目标文件夹复制所需的文件 成功将工件发布到私有Azure包存储库 我的第四步是运行一个DevOps Docker任务来构建用于部署web应用程序的Docker映像。这是一个挑战,因为我的dockerfile复制命令失败。我找不到目标文件夹,步骤3刚刚用于构建

我是Azure Devops的新手,在构建第一条管道时遇到了一些困难。到目前为止,我有三个步骤可以很好地工作:

  • Maven从POM构建,成功打包我的war文件
  • 将文件复制到$(system.defaultworkingdirectory),从目标文件夹复制所需的文件
  • 成功将工件发布到私有Azure包存储库
  • 我的第四步是运行一个DevOps Docker任务来构建用于部署web应用程序的Docker映像。这是一个挑战,因为我的dockerfile复制命令失败。我找不到目标文件夹,步骤3刚刚用于构建war文件的文件夹!为了定位目标文件夹,我在dockerfile中添加了以下命令:

    运行ls-R-la/

    它似乎已经转储了整个文件系统,并且在列表中找不到目标文件夹

    关于在哪里可以找到我的目标文件,有什么想法吗

    我很快就能按我想要的方式完成这项工作。如果我注释掉COPY命令,它将构建一个基本上为空的映像,我的第五步将它成功地推送到我的私有Docker存储库。当然,没有web应用程序,图像是无用的


    非常感谢您提供的任何帮助。

    经过多次尝试和错误,我找到了以下azure-pipelines.yml文件:

    trigger:
    - master
    
    jobs:
    - job: build
      pool:
        vmImage: 'Ubuntu-16.04'
      steps:
      - script: |
          echo Starting the build
          env
          java -version
          ./mvnw clean package -Dmaven.test.failure.ignore=true -e -U
          ls -la *
        displayName: 'Build with Maven'
      - task: Docker@0
        displayName: 'Build an image'
        inputs:
          azureSubscription: 'Visual Studio Enterprise (******)'
          azureContainerRegistry: '{"loginServer":"testingcontainerregistry******.azurecr.io", "id" : "/subscriptions/******/resourceGroups/******/providers/Microsoft.ContainerRegistry/registries/testingContainerRegistry******"}'
          action: 'Build an image'
      - task: Docker@0
        displayName: 'Push an image'
        inputs:
          azureSubscription: 'Visual Studio Enterprise (******)'
          azureContainerRegistry: '{"loginServer":"testingcontainerregistry******.azurecr.io", "id" : "/subscriptions/******/resourceGroups/******/providers/Microsoft.ContainerRegistry/registries/testingContainerRegistry******"}'
          action: 'Push an image'
    - job: test
      dependsOn: build
      condition: succeeded()
      pool:
        vmImage: 'Ubuntu-16.04'
      steps:
      - script: |
          echo Performing tests
          env
          ls -la
        displayName: 'Running integration tests'
    
    测试工作还没有做任何有用的事情,但是您可以看到Maven构建和Docker构建&推送是由同一个工作完成的

    基本上,我和你在同一个问题上挣扎。我创建了一个GitHub票证,让他们意识到,从当前文档中不容易理解基本概念: