Как принудительно воссоздать и запустить только один контейнер под docker-compose?

После внесения каких-либо изменений в код мои типичные шаги разработки следующие:

  1. Измените код и создайте файл jar
  2. Создайте образ докера, который использует файл jar
  3. Убейте текущую команду «docker-compose up».
  4. Запустите «docker-compose up» еще раз.

В моем файле docker-compose пять сервисов. На шаге 3 все контейнеры опускаются. В идеале мне просто нужно повторно запустить контейнер приложения.

Я ищу способ сделать следующее в пакетном сценарии:

  1. Опустите контейнер приложения. Остальные четыре контейнера должны продолжать работать.
  2. Создайте новый образ докера
  3. Заставить docker-compose воссоздать контейнер моего приложения и запустить его.

Для шага 1, похоже, я могу использовать «docker-compose kill myappname».

Шаг 2 также прост.

Мне интересно, как я могу выполнить шаг 3. Спасибо.

Возможный дубликат: stackoverflow.com/questions/36884991/…

Onki Hara 13.05.2022 08:13
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
2
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам не нужно явно останавливать текущий контейнер.

Если ваш образ изменился, docker compose распознает его и воссоздаст ваш контейнер, когда вы снова запустите команду up.

Итак, пересоберите свой образ и запустите docker compose up.

Если вы используете compose для создания образа, добавьте флаг --build, чтобы позволить ему перестроить ваш образ, после чего контейнер также будет воссоздан.

Вы также можете добавить имя конкретной службы в команду up, т.е. docker compose up -d --build app

Если изображение не изменилось, вы не можете добавить флаг --force-recreate.

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