Как обновить реплицированную службу Docker

Я все еще изучаю Docker, и, к сожалению, после нескольких часов чтения документации и попыток применения различных подходов, я вынужден обратиться за помощью сюда.

У меня есть 3 Droplets на Digital Ocean - dev, staging и production. На них размещены приложение Django и база данных.

И dev, и staging имеют один контейнер, который является просто контейнером Python, и один контейнер MySQL. Я обновляю их, извлекая изменения из репозитория Bitbucket, применяя миграции с помощью docker exec -ti CONTAINER /bin/bash и перезапускаю контейнер Python.

На производственном Droplet установлен реплицированный сервис, а образ взят из реестра контейнеров на Digital Ocean. Я извлекаю изменения из репозитория на Bitbucket, но поскольку я не могу просто перезапустить контейнер, изменения не отражаются на сайте.

Я пробовал docker stack deploy -c docker-compose.yml SERVICE --with-registry-auth и docker service update --image IMAGE SERVICE, но никакого эффекта.

Любая помощь будет оценена по достоинству. Спасибо

Я решил проблему, создав новый образ через Bitbucket. Затем docker stack deploy -c docker-compose.yml SERVICE --with-registry-auth извлек новый образ из репозитория на Digital Ocean и отразил изменения на сайте.

Как вы уже говорили, это можно сделать с помощью docker CLI, но если вы новичок в docker, вам стоит попробовать https://www.portainer.io/, который поможет вам легче выполнять такие задачи. Также portainer добавляет еще один рычаг API к docker, что также приятно.

Вернуться на верх