mguay22 / nestjs-rabbitmq-microservices

376 stars 195 forks source link

Docker Compose Error #1

Open sourabh-dev-ovonts opened 2 years ago

sourabh-dev-ovonts commented 2 years ago

NOTE : The docker-compose is for orders only.

services:
  orders:
    build:
      context: .
      dockerfile: ./apps/orders/Dockerfile
      target: development
    command: npm run start:dev orders
    env_file:
      - ./apps/orders/.env
    depends_on:
      - mongodb-primary
      - mongodb-secondary
      - mongodb-arbiter
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - '3000:3000'
  mongodb-primary:
    image: docker.io/bitnami/mongodb:5.0
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-primary
      - MONGODB_REPLICA_SET_MODE=primary
      - MONGODB_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
    volumes:
      - 'mongodb_master_data:/bitnami/mongodb'
    ports:
      - '27017:27017'

  mongodb-secondary:
    image: docker.io/bitnami/mongodb:5.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-secondary
      - MONGODB_REPLICA_SET_MODE=secondary
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

  mongodb-arbiter:
    image: docker.io/bitnami/mongodb:5.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-arbiter
      - MONGODB_REPLICA_SET_MODE=arbiter
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

volumes:
  mongodb_master_data:
    driver: local

ERROR: The Compose file './docker-compose.yml' is invalid because: Unsupported config option for services: 'mongodb-primary' Unsupported config option for volumes: 'mongodb_master_data'

NicholasWM commented 2 years ago

Anyone has solved this?

NicholasWM commented 2 years ago

NOTE : The docker-compose is for orders only.

services:
  orders:
    build:
      context: .
      dockerfile: ./apps/orders/Dockerfile
      target: development
    command: npm run start:dev orders
    env_file:
      - ./apps/orders/.env
    depends_on:
      - mongodb-primary
      - mongodb-secondary
      - mongodb-arbiter
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - '3000:3000'
  mongodb-primary:
    image: docker.io/bitnami/mongodb:5.0
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-primary
      - MONGODB_REPLICA_SET_MODE=primary
      - MONGODB_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
    volumes:
      - 'mongodb_master_data:/bitnami/mongodb'
    ports:
      - '27017:27017'

  mongodb-secondary:
    image: docker.io/bitnami/mongodb:5.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-secondary
      - MONGODB_REPLICA_SET_MODE=secondary
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

  mongodb-arbiter:
    image: docker.io/bitnami/mongodb:5.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-arbiter
      - MONGODB_REPLICA_SET_MODE=arbiter
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

volumes:
  mongodb_master_data:
    driver: local

ERROR: The Compose file './docker-compose.yml' is invalid because: Unsupported config option for services: 'mongodb-primary' Unsupported config option for volumes: 'mongodb_master_data'

I solved this just add : version: '2' in the first line of the document

Rus203 commented 1 year ago

probably I'm late but here is my template

version: '3.7'
services:
  orders:
    build:
      context: .
      dockerfile: ./apps/orders/Dockerfile
      target: development
    command: npm run start:dev orders
    restart: always
    env_file: 
      - ./apps/orders/.env
    depends_on:
      - mongodb-primary
      - mongodb-secondary
      - mongodb-arbiter
      - billing
      - rabbitmq
    volumes:
      - .:/usr/src/app
    ports:
      - 3000:3000

  billing:
    build:
      context: ./
      dockerfile: ./apps/billing/Dockerfile
      target: development
    env_file:
      - ./apps/billing/.env
    volumes:
      - .:/usr/src/app
    command: npm run start:dev billing
    restart: always
    depends_on:
      - mongodb-primary
      - mongodb-secondary
      - mongodb-arbiter
      - rabbitmq

  auth:
    build:
      context: .
      dockerfile: ./apps/auth/Dockerfile
      target: development
    ports:
      - 3001:3001
    depends_on:
      - mongodb-primary
      - mongodb-secondary
      - mongodb-arbiter
      - rabbitmq
    volumes:
      - .:/usr/src/app
    restart: always
    env_file:
      - ./apps/auth/.env
    command: npm run start:dev auth

  rabbitmq:
    image: rabbitmq
    restart: always
    ports:
      - 5672:5672

  mongodb-primary:
    image: docker.io/bitnami/mongodb:6.0
    restart: always
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-primary
      - MONGODB_REPLICA_SET_MODE=primary
      - MONGODB_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
    volumes:
      - mongodb_master_data:/bitnami/mongodb
    ports:
      - 27017:27017

  mongodb-secondary:
    restart: always
    image: docker.io/bitnami/mongodb:6.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-secondary
      - MONGODB_REPLICA_SET_MODE=secondary
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

  mongodb-arbiter:
    restart: always
    image: docker.io/bitnami/mongodb:6.0
    depends_on:
      - mongodb-primary
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb-arbiter
      - MONGODB_REPLICA_SET_MODE=arbiter
      - MONGODB_INITIAL_PRIMARY_HOST=mongodb-primary
      - MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123

volumes:
  mongodb_master_data:
    driver: local
Helios15 commented 11 months ago

i got an error when running docker compose up : {"t":{"$date":"2023-09-26T10:16:19.001+00:00"},"s":"W", "c":"QUERY", "id":23799, "ctx":"ftdc","msg":"Aggregate command executor error","attr":{"error":{"code":26,"codeName":"NamespaceNotFound","errmsg":"Unable to retrieve storageStats in $collStats stage :: caused by :: Collection [local.oplog.rs] not found."},"stats":{},"cmd":{"aggregate":"oplog.rs","cursor":{},"pipeline":[{"$collStats":{"storageStats":{"waitForLock":false,"numericOnly":true}}}],"$db":"local"}}}.

I searched and found something wrong with "local.oplog.rs" collection That error occur when run to mongodb-arbiter, anyone know how to solve this issue help me pls, thank you !