Project/E-commerce(MSA)

도커 컴포즈를 통해 Infra 설정하기 (feat. mongo express 환경변수 에러)

hu6r1s 2025. 5. 31. 12:10
services:
  postgres:
    container_name: postgres_sql
    image: postgres
    environment:
      POSTGRES_USER:  ${POSTGRES_USER}
      POSTGRES_PASSWORD:  ${POSTGRES_PASSWORD}
      PGDATA: /var/lib/postgresql/data
    volumes:
      - postgres:/var/lib/postgresql/data
    ports:
      - 5432:5432
    networks:
      - microservices-net
    restart: unless-stopped

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin@pgadmin.org}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: "False"
    volumes:
      - pgadmin:/var/lib/pgadmin
    ports:
      - 5050:80
    networks:
      - microservices-net
    restart: unless-stopped

  mongodb:
    container_name: mongodb
    image: mongo
    ports:
      - 27017:27017
    volumes:
      - mongo:/data
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}

  mongo-express:
    container_name: mongo_express
    image: mongo-express
    restart: unless-stopped
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_URL: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017
      ME_CONFIG_BASICAUTH_USERNAME: ${ME_CONFIG_BASICAUTH_USERNAME}
      ME_CONFIG_BASICAUTH_PASSWORD: ${ME_CONFIG_BASICAUTH_PASSWORD}

  mail-dev:
    container_name: mail-dev
    image: maildev/maildev
    ports:
      - 1080:1080
      - 1025:1025


networks:
  microservices-net:
    driver: bridge

volumes:
  postgres:
  pgadmin:
  mongo:

 

Docker Compose에 관련하여 스크립트에 대해 일일히 다 설명하지는 않겠지만, 스크립트를 짜면서 발생했던 에러에 대해서만 정리해보려고 한다.

컴포즈 파일을 만들면서 mongo-express에서 에러가 발생했다.

환경변수 문제가 발생하여 mongo-express의 도커 허브에 들어가 환경변수에 대해서 확인했다.

버전에 따라 환경변수가 변경된 것으로 확인됐다.

그리고 문제점은 도커허브와 깃허브의 환경변수 정보가 다르게 되어 있다는 점이다.

도커 허브에서는 이전 버전의 환경변수를 알려주고 있어 깃허브로 들어가 확인하여 사용했다.

내가 설정한 mongo-express 환경변수는 접속할 mongodb의 url이며, mongo express를 접속하면 나오는 username, password 입력 정보이다.

 

인터넷을 뒤져봤지만 환경변수로 인한 에러로 문제가 발생했던 사람들이 많았던 것 같다. 

이 문제가 발생했던 사람들에게 도움이 되고자 해결법을 공유한다.