HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
Docker Compose 환경변수 사용하기

Docker Compose 환경변수 사용하기

progress
Done
Tags
DevOps
Build UpWhatHow REFER

Build Up


notion image
  • 도커 컴포즈는 여러개의 컨테이너를 하나로 묶어 띄우는 Docker의 기능이다.
 

What


환경변수
  • 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.
  • 도커에서 사용하는 환경변수, 프로그래밍 언어인 자바가 사용하는 환경변수 등 이러한 프로세스들이 내부적으로 사용할 수 있는 변수를 환경 변수라고 한다.
 
 

How


docker에 환경변수를 사용하는 방법은 총 4가지가 있다.
 
  1. Compose 파일에 직접 입력하기
    1. notion image
       
  1. 쉘 환경변수로 등록하기
    1. notion image
      notion image
  1. 환경변수 파일로 구성하기
    1. 하나의 .env 파일로 구성하기
      1. version: '3.9' services: mysql: image: mysql:8 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
         
        .env 파일은 별다른 설정없에 Compose 파일로 바로 반영된다.
        .env file
        MYSQL_ROOT_PASSWORD=password
         
    2. 여러개의 파일로 구성하기
      1. .env.dev 와 .env.prod 가 있다고 하자
        $ cat ./config/.env.dev MYSQL_ROOT_PASSWORD=passwd_dev $ cat ./config/.env.prod MYSQL_ROOT_PASSWORD=passwd_prod
         
        env 파일을 .env.dev로 사용하라 라는 뜻으로 compose를 띄운다.
        docker compose --env-file ./config/.env.dev config
         
    3. 각 서비스 마다 다른 환경변수 파일 반영하기
      1. version: '3.9' services: mysql: env_file: # 파일이 여러 개라면 리스트 형태로 삽입한다. - a.env - b.env image: mysql:8 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        유의할 점
        • 같은 변수명이 들어있는 .env 파일들에서 마지막에 삽입된 변수가 값이 되어 적용된다.
       
  1. Dockerfile에 환경변수 직접 삽입하기
    1. FROM mysql:8 ENV MYSQL_ROOT_PASSWORD password
 
 
환경변수 우선순위
  1. Compose 파일에 직접 입력한 값
  1. 쉘 환경변수로 등록한 값
  1. 환경변수 파일로 입력된 값(.env 등)
  1. Dockerfile을 통해 삽입된 값
Environment variables in Compose
There are multiple parts of Compose that deal with environment variables in one sense or another. This page should help you find the information you need.
Environment variables in Compose
https://docs.docker.com/compose/environment-variables/#set-environment-variables-with-docker-compose-run
Environment variables in Compose
 

 REFER


Environment variables in Compose
There are multiple parts of Compose that deal with environment variables in one sense or another. This page should help you find the information you need.
Environment variables in Compose
https://docs.docker.com/compose/environment-variables/
Environment variables in Compose
mysql - Official Image | Docker Hub
MySQL is a widely used, open-source relational database management system (RDBMS).
mysql - Official Image | Docker Hub
https://hub.docker.com/_/mysql
Docker Compose에서 각 서비스 컨테이너에 쓰이는 환경변수를 다루는 방법
docker 도커 컴포즈(Docker Compose)를 사용할 때 각 서비스 컨테이너에 필요한 환경변수들을 어떻게 하면 효율적으로 다룰 수 있을까? 이번 글에서는 도커 컴포즈(Docker Compose)에서 환경변수를 다루는 방법들을 알아보고, 각 방법이 실제 배포 상황에서 어떤 우선순위를 갖는지, 그리고 주의해야 할 점은 무엇인지를 살펴보자. Docker Compose에서 환경변수를 다루는 방법은 크게 네 가지로 구분된다.
https://seongjin.me/environment-variables-in-docker-compose/
Docker Compose에서 각 서비스 컨테이너에 쓰이는 환경변수를 다루는 방법