icorm-mongodb-tests
Version:
Complete test suite for icorm with MongoDB using Total.js v4
106 lines (98 loc) • 2.79 kB
YAML
version: '3.8'
services:
# MongoDB simple para tests básicos
mongodb:
image: mongo:7
container_name: icorm-mongo-test
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: testpass123
MONGO_INITDB_DATABASE: testdb
volumes:
- mongodb_data:/data/db
- ./mongo-init:/docker-entrypoint-initdb.d
command: mongod --quiet
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 5s
timeout: 5s
retries: 5
# Replica Set - Nodo 1 (Primary)
mongo-rs1:
image: mongo:7
container_name: icorm-mongo-rs1
ports:
- "27018:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: testpass123
command: mongod --replSet rs0 --keyFile /data/keyfile/mongo-keyfile --bind_ip_all --quiet
volumes:
- mongodb_rs1:/data/db
- ./mongo-keyfile:/data/keyfile/mongo-keyfile:ro
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 5s
timeout: 5s
retries: 5
# Replica Set - Nodo 2
mongo-rs2:
image: mongo:7
container_name: icorm-mongo-rs2
ports:
- "27019:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: testpass123
command: mongod --replSet rs0 --keyFile /data/keyfile/mongo-keyfile --bind_ip_all --quiet
volumes:
- mongodb_rs2:/data/db
- ./mongo-keyfile:/data/keyfile/mongo-keyfile:ro
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 5s
timeout: 5s
retries: 5
# Replica Set - Nodo 3
mongo-rs3:
image: mongo:7
container_name: icorm-mongo-rs3
ports:
- "27020:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: testpass123
command: mongod --replSet rs0 --keyFile /data/keyfile/mongo-keyfile --bind_ip_all --quiet
volumes:
- mongodb_rs3:/data/db
- ./mongo-keyfile:/data/keyfile/mongo-keyfile:ro
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 5s
timeout: 5s
retries: 5
# Inicializador del Replica Set
mongo-rs-init:
image: mongo:7
container_name: icorm-mongo-rs-init
depends_on:
mongo-rs1:
condition: service_healthy
mongo-rs2:
condition: service_healthy
mongo-rs3:
condition: service_healthy
volumes:
- ./init-replica-set.sh:/init-replica-set.sh
entrypoint: ["/bin/bash", "/init-replica-set.sh"]
restart: "no"
volumes:
mongodb_data:
mongodb_rs1:
mongodb_rs2:
mongodb_rs3:
networks:
default:
name: icorm-test-network