Это работает для меня, я выполнил то же самое с очень небольшим количеством изменений в файле docker-compose, таких как добавление образа my_image в личный реестр и режим развертывания как глобальный для redis, когда я выполняю режим роя ( 1 менеджер 2 рабочих узла). Пожалуйста, найдите следующие шаги.
Создайте локальный реестр с помощью приведенной ниже команды.
docker service create registry --name registry --publish published=5003,target=5000 registry:2
обновить изображение и построить тег, как указано ниже. Также обновите режим развертывания как глобальный для redis.
Примечание. Если вы работаете в Docker Swarm, убедитесь, что у вас есть путь / home / docker / data, созданный на всех узлах.
version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: 127.0.0.1:5003/my_image:latest
build: .
deploy:
replicas: 5
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 50M
ports:
- "4000:80"
networks:
- webnet
redis:
image: redis
deploy:
mode: global
ports:
- "6379:6379"
volumes:
- "/home/docker/data:/data"
command: redis-server --appendonly yes
networks:
- webnet
networks:
webnet:
Выполните следующие команды, где существуют все ваши артефакты (Dockerfile, docker-compose.yml, needs.txt app.py).
Запустите приведенную ниже команду для создания изображений.
docker-compose up -d
выполните приведенную ниже команду для удаления контейнеров.
docker-compose down
выполните приведенную ниже команду, чтобы отправить созданный образ my_image в личный реестр.
docker-compose push
выполните приведенную ниже команду, чтобы создать стек с тем же файлом компоновки.
docker stack deploy --compose-file docker-compose.yml redisapp
Снимки экрана для вашей ссылки.
Надеюсь, это поможет вам, Дайте мне знать, если вам нужна помощь.