带有Docker

问题描述 投票:0回答:1

我花了一整天的时间试图弄清楚如何将我的独立mongod转换为副本集,并且失败了。这就是我在不复制的情况下这样做的方式。

docker-compose.yaml

volumes: mongo.data: services: mongo: image: ${COMPOSE_PROJECT_NAME}/mongo container_name: ${COMPOSE_PROJECT_NAME}.mongo.docker restart: unless-stopped build: context: . dockerfile: ./mongo.Dockerfile env_file: envs/mongo.env volumes: - mongo.data:/data/db ports: - 127.0.0.1:${MONGO_PORT}:${MONGO_PORT} networks: - network networks: network: driver: bridge
Mongo.dockerfile

FROM mongo:6.0 ENV MONGO_PORT=27017 EXPOSE $MONGO_PORT HEALTHCHECK CMD echo 'db.runCommand("ping").ok' | mongosh 127.0.0.1:$MONGO_PORT/test --quiet || exit 1 ENTRYPOINT docker-entrypoint.sh mongod --port $MONGO_PORT
然后我正在使用这样的URL连接:

mongodb://${env('MONGO_USERNAME')}:${env('MONGO_PASSWORD')}@${env('MONGO_HOST')}:${env('MONGO_PORT')}/${env('MONGO_DATABASE')}?authSource=admin


如果有人能帮助我,我会很感激。
    

docker-compose.yaml:
node.js mongodb docker mongoose docker-compose
1个回答
0
投票
services: mongo: image: mongo command: ['--replSet', 'rs0', '--bind_ip_all', '--port', '27017'] ports: - 27017:27017 extra_hosts: - 'host.docker.internal:host-gateway' healthcheck: test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'host.docker.internal:27017'}]}) }" | mongosh --port 27017 --quiet interval: 5s timeout: 30s start_period: 0s start_interval: 1s retries: 30 volumes: - 'mongo_data:/data/db' - 'mongo_config:/data/configdb' volumes: mongo_data: mongo_config:

.env:
MONGODB_URI="mongodb://localhost:27017/db-name?replicaSet=rs0"

和 - >
docker-compose up --wait

这些设置正在我的Nestjs Project

MoreInfo =>链接:

Medium

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.