Остановить группу экземпляров контейнера, когда один из контейнеров завершен - PullRequest
0 голосов
/ 16 апреля 2020

Я создаю группу контейнеров с контейнером, который запускает E2E на веб-сайте. Как я могу остановить всю группу, когда один из контейнеров перестал работать? (в этом случае тесты E2E)

Я создаю это через конвейер, и мне нужно остановить контейнер переднего плана, как только тест завершен.

apiVersion: 2018-10-01
location: northeurope
name: e2e-uat
properties:
  containers:
    # name of the instance in Azure.
    - name: e2etestcafe
      properties:
        image: registry.azurecr.io/e2e/e2etestcafe:latest
        resources:
          requests:
            cpu: 1
            memoryInGb: 3
    - name: customerportal
      properties:
        image: registry.azurecr.io/e2e/customerportal:latest
        resources:
          requests:
            cpu: 1
            memoryInGb: 1
        ports:
          - port: 80
  osType: Linux
  restartPolicy: never
tags: null
type: Microsoft.ContainerInstance/containerGroups

1 Ответ

1 голос
/ 16 апреля 2020

Для этого требования ACI не имеет функции, которую вы ожидаете, как я знаю. Таким образом, вы должны проверить состояние контейнеров самостоятельно.

Я рекомендую вам создать скрипт с al oop, чтобы проверять состояние контейнеров до тех пор, пока оно не будет соответствовать ожидаемой вами ситуации, а затем остановить всю группу контейнеров. В Azure DevOps вы можете использовать конвейер выпуска с тремя этапами, один для создания, второй для проверки состояния при запуске сценария, третий для остановки группы контейнеров.

Чтобы проверить состояние контейнеров , Я думаю, что команда CLI полезна ниже:

az container show -g myResourceGroup -n myContainerGroup --query containers[*].instanceView.currentState.state

Она выведет состояние всех контейнеров в массиве.

...