Я могу установить имя пользователя, пароль и создать базу данных с помощью файла docker compose.yml
version: '3'
services:
mongodb:
image: mongo
volumes:
- /home/temp/finalewd/temp:/var/lib/mongodb
restart: on-failure
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: XXXX
MONGO_INITDB_ROOT_PASSWORD: XXXX
MONGO_INITDB_DATABASE: XXXX
Он выводит новый контейнер mongo с базой данных как XXXX, с именем пользователя и паролем.
Но когда я пытаюсь настроить контейнер док-станции Монго с набором реплик, как показано ниже,
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: on-failure
volumes:
- /home/temp/mongo/compose/data:/data/db
entrypoint: [ "/usr/bin/mongod", "--bind_ip_all","--replSet", "rs0" ]
environment:
MONGO_INITDB_ROOT_USERNAME: XXXX
MONGO_INITDB_ROOT_PASSWORD: XXXX
MONGO_INITDB_DATABASE: XXXX
Используя вышеупомянутый docker-compose.yml, он вызывает набор реплик, но не создает базу данных / имя пользователя / пароль.
Почему переменная окружения не используется в вышеуказанном случае?
Любая помощь приветствуется.
Содержание добавлено для ответа Томаса:
Попробовал docker-compose.yml, используя содержимое ответа Томаса, и как только монго поднялось, я попытался "rs.initiate, но он выдает уже инициализированный статус, так как в этом случае вывести монго с мастерским статусом
rs0:OTHER> rs.status();
{
"operationTime" : Timestamp(1552397666, 1),
"ok" : 0,
"errmsg" : "Our replica set config is invalid or we are not a member of it",
"code" : 93,
"codeName" : "InvalidReplicaSetConfig",
"$clusterTime" : {
"clusterTime" : Timestamp(1552397666, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
rs0:OTHER> rs.initiate()
{
"operationTime" : Timestamp(1552397666, 1),
"ok" : 0,
"errmsg" : "already initialized",
"code" : 23,
"codeName" : "AlreadyInitialized",
"$clusterTime" : {
"clusterTime" : Timestamp(1552397666, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
rs0:OTHER>
Спасибо,
Гарри