도커 컴포즈 파일에서 환경 변수 사용하기

cabbage·2023년 10월 25일
0

기타

목록 보기
26/26
post-thumbnail

도커 컴포즈 파일에서 환경 변수 사용하기

도커 컴포즈 실행 시 환경 변수 파일을 명시하고, 명시한 환경 변수 파일에서 환경 변수를 읽어 도커 컴포즈에서 사용할 수 있다.

도커 컴포즈 실행 시 환경 변수 파일을 명시하는 방법

docker-compose --env-file 환경변수파일경로 up
  • 환경변수파일경로의 경우 도커 컴포즈 명령을 실행하는 현재 워킹 디렉터리로부터의 상대경로를 입력해야 함

예시

// .development.env
SERVER_PORT=3000

MYSQL_ROOT_USER=root
MYSQL_ROOT_PASSWORD=root
MYSQL_HOST=dev_db
MYSQL_PORT=3306
MYSQL_DATABASE=socialfeed
MYSQL_SYNCHRONIZE=true
MYSQL_LOGGING=true
docker-compose --env-file .development.env up
  • 도커 컴포즈 파일과 .development.env 파일이 같은 워킹 디렉터리에 위치하여 파일 이름만 작성하였음

추가적으로 어떤 환경 변수 파일을 사용할 때 도커 컴포즈 파일이 어떻게 구성될지를 확인하는 방법도 존재한다.

docker-compose --env-file 환경변수파일경로 config
name: 1_socialfeed_f
services:
  api:
    build:
      context: /Users/taeyoon/Desktop/Projects/1_SocialFeed_F
      dockerfile: DockerFile
    depends_on:
      dev_db:
        condition: service_healthy
    networks:
      container-network: null
    ports:
    - mode: ingress
      target: 3000
      published: "3000"
      protocol: tcp
    restart: always
    volumes:
    - type: bind
      source: /Users/taeyoon/Desktop/Projects/1_SocialFeed_F/src
      target: /api/src
      bind:
        create_host_path: true
  dev_db:
    container_name: db
    environment:
      MYSQL_DATABASE: socialfeed
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ROOT_USER: root
    healthcheck:
      test:
      - CMD
      - mysqladmin
      - ping
      - -h
      - localhost
      - -u
      - root
      - -p$$MYSQL_ROOT_PASSWORD
      timeout: 20s
      retries: 10
    image: mysql:latest
    networks:
      container-network: null
    ports:
    - mode: ingress
      target: 3306
      published: "3306"
      protocol: tcp
    restart: always
networks:
  container-network:
    name: 1_socialfeed_f_container-network
    driver: bridge

참고링크

profile
캐비지 개발 블로그입니다. :)

0개의 댓글