diff --git a/docker-compose copy.yml b/docker-compose copy.yml new file mode 100644 index 0000000..50f172e --- /dev/null +++ b/docker-compose copy.yml @@ -0,0 +1,96 @@ +services: + # MongoDB Service + mongodb: + image: mongo:6.0 + container_name: infinity-mongodb-2 + restart: always + environment: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + volumes: + - mongodb_data:/data/db + ports: + - "27018:27017" + networks: + - infinity-network + healthcheck: + test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] + interval: 10s + timeout: 5s + retries: 5 + + # Web Application (Next.js) + webapp: + build: + context: . + dockerfile: webapp/Dockerfile + args: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + container_name: infinity-webapp-2 + restart: always + depends_on: + mongodb: + condition: service_healthy + environment: + - NODE_ENV=${NODE_ENV} + - DB_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + - NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL} + env_file: .env + ports: + - "8082:3000" # Let Docker assign a dynamic host port + networks: + - infinity-network + + # Worker Service + worker: + build: + context: . + dockerfile: worker/Dockerfile + args: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + container_name: infinity-worker-2 + restart: always + depends_on: + mongodb: + condition: service_healthy + environment: + - DB_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + env_file: .env + networks: + - infinity-network + + # Helper Service (runs once to create admin account) + create-admin: + build: + context: . + dockerfile: helpers/Dockerfile + args: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + container_name: infinity-create-admin-2 + depends_on: + mongodb: + condition: service_healthy + environment: + - DB_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin + - ADMIN_USERNAME=${ADMIN_USERNAME} + - ADMIN_PASSWORD=${ADMIN_PASSWORD} + env_file: .env + networks: + - infinity-network + # This ensures the container exits after creating the admin account + command: sh -c "python create_account.py" + +networks: + infinity-network: + driver: bridge + +volumes: + mongodb_data: + driver: local \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 50f172e..7342cc0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,6 @@ services: # MongoDB Service mongodb: image: mongo:6.0 - container_name: infinity-mongodb-2 restart: always environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} @@ -29,7 +28,6 @@ services: MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin - container_name: infinity-webapp-2 restart: always depends_on: mongodb: @@ -53,7 +51,6 @@ services: MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin - container_name: infinity-worker-2 restart: always depends_on: mongodb: @@ -73,7 +70,6 @@ services: MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} DB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/Infinity?authSource=admin - container_name: infinity-create-admin-2 depends_on: mongodb: condition: service_healthy