도커 컴포즈 실행 시 환경 변수 파일을 명시하고, 명시한 환경 변수 파일에서 환경 변수를 읽어 도커 컴포즈에서 사용할 수 있다.
도커 컴포즈 실행 시 환경 변수 파일을 명시하는 방법
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
추가적으로 어떤 환경 변수 파일을 사용할 때 도커 컴포즈 파일이 어떻게 구성될지를 확인하는 방법도 존재한다.
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
참고링크