Как получить статус контейнера Docker и сбой конвейера, если contianer не запущен

У нас есть конвейер Azure для сборки и развертывания образа Docker.

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

Мы настраиваем конвейер yaml для сборки и развертывания образа Docker, который успешно развернут, и contianer работает нормально.

Но нам нужно добавить логику, чтобы получить статус contianer, если он не запущен, пометить конвейер как неудавшийся.

Мы использовали приведенную ниже команду для проверки статуса.

sudo docker container ls --filter "name=$(module)" --filter "status=running"

Привет, какую задачу вы используете для запуска контейнера докеров. Также было бы неплохо, если бы вы поделились файлом yml и Dockerfile, чтобы люди, читающие ваш вопрос, имели что-то в качестве ссылки и могли использовать это для реализации решения поверх него :)

pnkjkmr469 14.02.2023 12:42

Найдите файл docker и yaml, как показано ниже, файл Docker: FROM custom-base-image COPY ./test.war /ROOT.war CMD ["catalina.sh", "run"] Конвейер Yaml: - задача: Bash@3 входы: targetType: встроенный скрипт: | sudo docker run -itd --name Test -p 8080:8080 testimage:v$(Build.Buildnumber) sleep 30 sudo docker container ls --filter "name=Test" --filter "status=running" | exit 1 --> Эта строка все еще закомментирована

Sundar M 15.02.2023 04:36

Сообщите мне, в какой службе Azure вы развертываете контейнер Docker. Веб-приложение или приложение-функция, или ACI, или любое другое?

Sourav 15.02.2023 06:09

Это инфраструктура разработки, где мы сейчас развертываем локальный сервер RHEL 8.0.

Sundar M 15.02.2023 06:42

@SundarM Спасибо, что поделились подробностями. Однако другим будет легко прочитать, если вы обновите эти данные в своем вопросе, отредактировав его. Используйте блоки кода везде, где это необходимо, чтобы сделать его более читабельным.

pnkjkmr469 15.02.2023 07:31
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
5
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался воспроизвести то же самое в своей лабораторной среде и получил положительные результаты после выполнения следующих шагов.

Шаг 1. Добавьте приведенный ниже фрагмент кода в конвейер, который приводит к сбою конвейера, если контейнер не запущен.

- script: |
   if docker ps | grep busy_wiles; then
      echo 'Container is running'
    else
      echo 'Container is not running'
      exit 1
    fi

*Примечание. В приведенном выше коде «busy_wiles» — это имя моего контейнера.

Шаг 2: Запустите конвейер и посмотрите результат.

• Ниже приведен результат работы контейнера.

• Ниже приведен вывод, когда контейнер не запущен.

Извините, я не смог проголосовать за ответ.

Sundar M 16.02.2023 03:58

Другие вопросы по теме