Как обновить содержимое примонтированного volume в docker service?

Добрый день!

Есть docker-compose.yml файл:
version: "3.5"

services:
    nginx:
        image: nginx:latest
        depends_on:
            - my-app
            - my-admin
        ports: 
            - 80:80
        volumes:
            - /home/project/data/nginx/conf.d:/etc/nginx/conf.d
            - /home/project/public:/var/public
            - my-admin-volume:/usr/src/app
        networks:
            - my-network
        deploy:
            placement:
                constraints: [node.role == manager]

    my-admin:
        image: my-admin
        env_file:
            - /home/project/ucell.env
        ports:
            - 9000:9000
        depends_on:
            - mariadb
            - redis
            - mongodb
        working_dir: /usr/src/app
        volumes:
            - /home/project/data/log:/var/log/container
            - /home/project/public:/usr/src/app/storage/app/public
            - my-admin-volume:/usr/src/app
        networks:
            - my-network

volumes:
    my-admin-volume:
                
networks:
    my-network:


Запускаю docker stack командой:
docker stack deploy -c docker-compose.yml prod
Все создается и работает хорошо. Но когда надо обновить образ my-admin, я запускаю команду:
docker service update --image my-admin:v2 prod_my-admin --force
(v2 здесь к примеру).
То volume с названием prod_my-admin-volume содержит старые файлы из старого образа my-admin:v1. (При создание стека в название volume docker сам добавляет префикс prod_)
Для того чтоб обновить содержимого volume делаю:
docker service update --mount-add type=volume,source=prod_my-admin-volume,target=/usr/src/app prod_my-admin
docker service update --mount-add type=volume,source=prod_my-admin-volume,target=/usr/src/app prod_nginx

Но все равно не обновляется.
Но если удалить запущенный стек, volume с названием prod_my-admin-volume
и заново создать стек то все новые файлы видны.
Вопрос: Как можно обновить содержимое примонтированного volume без пересоздания стека? Кто нибудь сталкивался с такой ситуацией? Если можно укажите в какую сторону копать?!
Заранее большое спасибо!
  • Вопрос задан
  • 1138 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sah4ez32
software engineer
Так вольюм оно как раз про это. Сохранение данных.
Вопрос что у вас в вольюмах лежит. Можно попробовать запустить разовую джобу по миграции данных. В виде контейнера и списка команд.
Но так же советую пересмотреть подходы к использованию докера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы