Daily Develope

[Docker] postgresql 배포 샘플 코드 (docker-compose) with adminer 본문

MicroService/Docker

[Docker] postgresql 배포 샘플 코드 (docker-compose) with adminer

noggame 2023. 10. 3. 21:18

postgresql DB를 생성하고, adminer 웹 UI를 통해 쉽게 DB를 제어할 수 있는 컨테이너 환경 구성

환경

Docker : version 20.10.13

샘플코드

컨테이너 구성 파일 (db_docker_compose.yaml)

컨테이너 및 가상망 설정

  1. Docker 가상 네트워크 생성 (네트워크명:db-network)
  2. adminer와 postgresql 컨테이너 생성 및 가상망과 연결
  3. postgresql 설정
    • image : postgres alpine 3.18 이미지
    • port : 호스트 5432 포트와 컨테이너 5432 포트 연결
    • DB ID/PW : 환경변수 파일(.env)의 값을 불러와 설정 (POSTGRES_USER / POSTGRES_PWD)
    • volume : 환경변수 파일(.env)에 설정된 특정 경로와 container의 볼륨 연결 (POSTGRES_DATA_PATH)
  4. adminer 설정
    • image : adminer 최신버전
    • port : 호스트 8082 포트와 컨테이너 8080 포트 연결
version: '3.2'

services:

  adminer:
    image: adminer
    restart: always
    ports:
      - 8082:8080
    networks:
      - db-network

  postgresql:
    image: postgres:alpine3.18
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PWD}
    networks:
      - db-network
    ports:
      - 5432:5432
    volumes:
      - type: bind
        source: ${POSTGRES_DATA_PATH}
        target: /var/lib/postgresql/data

networks:
  db-network:

환경설정 파일 (db_config.env)

POSTGRES_USER=myname
POSTGRES_PWD=mypassword
POSTGRES_DATA_PATH=/my/data/path

실행

docker compose --env-file db_config.env -f db_docker_compose.yaml up -d
# 구버전의 경우 docker-compose 별도 설치 및 명령 사용
  • --env-file : 사용자정의 환경변수 파일 사용
  • -f : 사용자정의 컨테이너 환경 구성 파일 사용
  • -d : 백그라운드 실행

종료의 경우 아래 코드 실행

docker compose --env-file db_config.env -f db_docker_compose.yaml down
Comments