Сборка Azure DevOps Maven Docker - не удается найти целевую папку - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в Azure Devops и у меня возникли некоторые трудности при строительстве моего первого конвейера.На данный момент у меня есть три шага, которые прекрасно работают:

  1. Сборка Maven из POM, успешно упаковывает мой war-файл
  2. Копировать файлы в $ (system.defaultworkingdirectory), копируя файлы, которые яхотите из целевой папки
  3. Успешная публикация артефакта в частном хранилище пакетов Azure

Мой 4-й шаг запускает Задача DevOps Docker для создания образа Dockerиспользоваться для развертывания веб-приложения.Это было проблемой, потому что мои команды COPY dockerfile терпят неудачу.Я не могу найти целевую папку, которая использовалась в шаге 3 для создания файла войны!Стремясь найти целевую папку, я добавил эту команду в свой dockerfile:

RUN ls -R -la /

Похоже, что была выгружена вся файловая система, и целевой папки нигде нетможно найти в списке.

Есть мысли о том, где я могу найти мои целевые файлы?

Я очень близок к тому, чтобы сделать эту работу так, как я хочу.Если я закомментирую команду COPY, она создаст принципиально пустое изображение, которое мой 5-й шаг успешно отправит в мой частный репозиторий Docker.Конечно, изображение бесполезно без веб-приложения.

Любая помощь, которую вы можете предложить, будет принята с благодарностью.

1 Ответ

0 голосов
/ 21 декабря 2018

После долгих проб и ошибок я создал следующий файл 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, чтобы они знали о том, что основные понятия не так легко понять из текущей документации: https://github.com/MicrosoftDocs/vsts-docs/issues/2851

...