Это мой Dockerfile:
FROM mongo
WORKDIR /usr/src/app
COPY db /usr/src/app/db
COPY replica.js /usr/src/app/
CMD mongo
Реплика. js следующим образом
rs.initiate();
Это мой docker -композитный файл
mongo_server:
image: mongo
hostname: mongo_server.$ENV_NAME
build:
context: ./mongo
dockerfile: Dockerfile
expose:
- 27017
ports:
- "$MONGO_PORT:27017"
restart: always
networks:
localnet:
aliases:
- mongo_server.$ENV_NAME
command: --replSet $MONGO_REPLICA --bind_ip_all
volumes:
- "mongovolume:/data/db"
Проблема в том, что если я запустился успешно docker - составьте. Затем мне нужно вручную запустить две команды
docker exec 2b2 sh -c "mongo < /usr/src/app/replica.js" # 2b2 is id of container mongo
и
docker exec 2b2 sh -c "mongorestore --drop -d mydb /usr/src/app/db"
Теперь реплика настроена, база данных восстановлена. У меня вопрос, могу ли я сделать это автоматически, например, перейти на entrypoint.sh
и вызвать Dockerfile
или установить docker-compose.yml
, чтобы уменьшить ручную работу?