У меня есть файл docker -compose.yml, который составляет три контейнера mon go, который включает три набора реплик, мои контейнеры создаются без проблем, но setupmon go. sh не работает, когда мои службы запускаются правильно. Я имею в виду, что функция rs.initiate () не работает с файлом bash, но когда я пытаюсь запустить функцию rs.initiate () с ее параметрами вручную (в интерактивном терминале docker), она работает правильно, мои реплики работают так, как должны быть. В результате мне нужно запустить функцию rs.initiate () для bash file
Здесь мой docker -compose.yml файл
version: "3.3"
services:
mongo1:
hostname: mongo1
container_name: mongo1
image: mongo:4.0.4
command: mongod --replSet devrs
volumes:
- ./mongodb/data1/db:/data/db
- ./mongodb/data1/configdb:/data/configdb
networks:
- mongo-dev-net
expose:
- 27017
ports:
- 30001:27017
restart: always
mongo2:
hostname: mongo2
container_name: mongo2
image: mongo:4.0.4
command: mongod --replSet devrs
volumes:
- ./mongodb/data2/db:/data/db
- ./mongodb/data2/configdb:/data/configdb
networks:
- mongo-dev-net
expose:
- 27017
ports:
- 30002:27017
restart: always
mongo3:
hostname: mongo3
container_name: mongo3
image: mongo:4.0.4
command: mongod --replSet devrs
volumes:
- ./mongodb/data3/db:/data/db
- ./mongodb/data3/configdb:/data/configdb
networks:
- mongo-dev-net
expose:
- 27017
ports:
- 30003:27017
restart: always
mongo-config:
container_name: mongo-config
image: alpine
networks:
- mongo-dev-net
depends_on:
- mongo1
- mongo2
- mongo3
volumes:
- ./setupmongo.sh:/setupmongo.sh
entrypoint: ["/setupmongo.sh"]
networks:
mongo-dev-net:
И setupmon go. sh file
#!/bin/bash
echo "Start"
mongo <<EOF
rs.config()
rs.initiate(
{
"_id" : "devrs",
"members" : [
{
"_id" : 0,
"host" : "mongo1:27017",
"priority": 2
},
{
"_id" : 1,
"host" : "mongo2:27017",
"priority": 0
},
{
"_id" : 2,
"host" : "mongo3:27017",
"priority": 0
}
]
}
)
EOF
Последний набор реплик не инициализирован