| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- version: "3"
- services:
- mongo1:
- hostname: mongo1
- container_name: mongo1
- image: mongo:${MONGO_TAG}
- environment:
- MONGO_INITDB_DATABASE: mqtt
- networks:
- - emqx_bridge
- expose:
- - 27017
- ports:
- - 27011:27017
- restart: always
- volumes:
- - ../../apps/emqx/etc/certs/cert.pem:/etc/certs/cert.pem
- - ../../apps/emqx/etc/certs/key.pem:/etc/certs/key.pem
- command:
- - /bin/bash
- - -c
- - |
- cat /etc/certs/key.pem /etc/certs/cert.pem > /etc/certs/mongodb.pem
- mongod --ipv6 --bind_ip_all --tlsMode requireTLS --tlsCertificateKeyFile /etc/certs/mongodb.pem --replSet rs0
-
- mongo2:
- hostname: mongo2
- container_name: mongo2
- image: mongo:${MONGO_TAG}
- environment:
- MONGO_INITDB_DATABASE: mqtt
- networks:
- - emqx_bridge
- expose:
- - 27017
- ports:
- - 27012:27017
- restart: always
- volumes:
- - ../../apps/emqx/etc/certs/cert.pem:/etc/certs/cert.pem
- - ../../apps/emqx/etc/certs/key.pem:/etc/certs/key.pem
- command:
- - /bin/bash
- - -c
- - |
- cat /etc/certs/key.pem /etc/certs/cert.pem > /etc/certs/mongodb.pem
- mongod --ipv6 --bind_ip_all --tlsMode requireTLS --tlsCertificateKeyFile /etc/certs/mongodb.pem --replSet rs0
- mongo3:
- hostname: mongo3
- container_name: mongo3
- image: mongo:${MONGO_TAG}
- environment:
- MONGO_INITDB_DATABASE: mqtt
- networks:
- - emqx_bridge
- expose:
- - 27017
- ports:
- - 27013:27017
- restart: always
- volumes:
- - ../../apps/emqx/etc/certs/cert.pem:/etc/certs/cert.pem
- - ../../apps/emqx/etc/certs/key.pem:/etc/certs/key.pem
- command:
- - /bin/bash
- - -c
- - |
- cat /etc/certs/key.pem /etc/certs/cert.pem > /etc/certs/mongodb.pem
- mongod --ipv6 --bind_ip_all --tlsMode requireTLS --tlsCertificateKeyFile /etc/certs/mongodb.pem --replSet rs0
-
- mongo_client:
- image: mongo:${MONGO_TAG}
- container_name: mongo_client
- networks:
- - emqx_bridge
- depends_on:
- - mongo1
- - mongo2
- - mongo3
- volumes:
- - ../../apps/emqx/etc/certs/cacert.pem:/etc/certs/cacert.pem
- command:
- - /bin/bash
- - -c
- - |
- while ! mongo --host mongo1 --tls --tlsCAFile /etc/certs/cacert.pem --tlsAllowInvalidHostnames --eval 'db.runCommand("ping").ok' --quiet > /dev/null 2>&1; do
- sleep 1
- done
- while ! mongo --host mongo2 --tls --tlsCAFile /etc/certs/cacert.pem --tlsAllowInvalidHostnames --eval 'db.runCommand("ping").ok' --quiet > /dev/null 2>&1; do
- sleep 1
- done
- while ! mongo --host mongo3 --tls --tlsCAFile /etc/certs/cacert.pem --tlsAllowInvalidHostnames --eval 'db.runCommand("ping").ok' --quiet > /dev/null 2>&1; do
- sleep 1
- done
- mongo --host mongo1 --tls --tlsCAFile /etc/certs/cacert.pem --tlsAllowInvalidHostnames --eval "rs.initiate( { _id : 'rs0', members: [ { _id : 0, host : 'mongo1:27017' }, { _id : 1, host : 'mongo2:27017' }, { _id : 2, host : 'mongo3:27017' } ] })" --quiet
- mongo --host mongo1 --tls --tlsCAFile /etc/certs/cacert.pem --tlsAllowInvalidHostnames --eval "rs.status()" --quiet
|