docker-compose-db-setting

kiyeon·2022년 11월 18일
0


Docker-compose

테스트 용도에 DB 및 nginx 구성요청이 왔다 별도의 config 파일 이나 셋팅 값들의 내용이 없어
단순하게 docker run 으로 진행 하려고 했으나 단일 서버에 컨테이너가 4개 가 실행되고
추후 버전 이나 다른 문제가 발생 할 수있어 docker-compose 로 셋팅하기로 했다
아무래도 yml 작성 시 정보 공유 및 다음번 요청에도 손쉽게 할 수 있어 다음과 같이 셋팅을 진행 하였다

환경 및 설치 버전

server: CentOS7.6 engine-version: 20.10.17 / compose-version: 2.10.2

mariadb:10.9.4 / mongodb:6.0.2 / redis:7.0.5 / nginx:1.22.0

docker-compose-yml

version: "3.9"

services:
  mariadb:
    image: mariadb:10.9.4 
    container_name: "mariadb"
    ports:
      - 3307:3306
    volumes:
      - mariadb:/etc
    restart: always
    environment:
        MARIADB_HOST: localhost
        MARIADB_ROOT_PASSWORD: test!@
    networks:
      - db-network

  mongodb:
    image: mongo:6.0.2
    container_name: "mongodb"
    ports:
      - 27017:27017
    volumes:
      - mongodb:/etc
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: test!@
    networks:
      - db-network

  redis:
    image: redis:7.0.5
    container_name: "redis"
    ports:
      - 6379:6379
    volumes:
      - redis:/etc
    restart: always
    command: redis-server --requirepass password-test
    networks:
      - db-network

  nginx:
    depends_on:
      - mariadb
      - mongodb
      - redis 
    image: nginx:1.22.0
    container_name: "nginx"
    ports:
      - 8080:80
    volumes:
      - nginx:/etc
    restart: always
    networks:
      - db-network
          
volumes:
  mariadb: 
    external: true
  mongodb: 
    external: true
  redis: 
    external: true
  nginx: 
    external: true

networks:
  db-network:
    external: true

redis 같은 경우에는 보안상 패스워드를 지정해 줘야 하지만 별도의 환경 변수를 찾지못했고
redis.conf 파일 생성 또한 안되어있어 command: redis-server --requirepass <패스워드>
추가하여 패스워드를 추가하였다.

0개의 댓글