Итак, я настраиваюсь с помощью Docker Swarm.
Теперь я в порядке с командой docker stack deploy -c docker-compose.yml myapp
, которая заменяет мою прежнюю docker-compose up
.
Но одна из моих услуг - это мояDB и мне нужно pgrestore
внутри него.
Ранее с compose я запускал:
docker-compose run --rm postgres pg_restore --rest-of-command
Как мне сделать то же самое с stack deploy
?
К сожалению, контейнер, созданный с помощью compose, отличается от контейнера из stack deploy
: первый называется myapp_postgres
, а второй myapp_postgres.1.zamd6kb6cy4p8mtfha0gn50vh
.
Полагаю, я мог бынапишите что-то вроде docker exec 035803286af0
, но тогда я потеряю все преимущества конфига от docker-compose.yml
, который в данном случае:
postgres:
env_file:
- ./.env
image: postgres:11.0-alpine
volumes:
- "..:/app" # toe make the dump accessible to the container
- "/var/run/postgresql:/var/run/postgresql"
Так что это решение не очень IaC .
Так нет docker service run
или что-то еще?
Спасибо