Esta es la parte del dockerfile que nos ha servido bien hasta la fecha. Sin embargo, ahora necesito convertir esto para que sea un conjunto de réplicas de un solo nodo (para que las transacciones funcionen). No quiero ningún secundario o árbitro, solo el nodo principal. ¿Qué me falta para que esto funcione?
mongo: image: mongo:4.4.3 container_name: mongo restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: myPass command: mongod --port 27017 ports: - '27017:27017' volumes: - ./data/mongodb:/data/db - ./data/mongodb/home:/home/mongodb/ - ./configs/mongodb/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:roLo tengo funcionando. Inserté lo siguiente en el bloque en mi pregunta anterior:
hostname: mongodb volumes: - ./data/mongodb/data/log/:/var/log/mongodb/ # the healthcheck avoids the need to initiate the replica set healthcheck: test: test $$(echo "rs.initiate().ok || rs.status().ok" | mongo -u root -p imagiaRoot --quiet) -eq 1 interval: 10s start_period: 30s