본문 바로가기
Docker

9. Docker-compose에서 환경 변수 설정하기(.env파일) (node.js)

by 프잘백 2022. 3. 22.
728x90

1. 구조

.env파일은 docker-compose와 같이 최상단에 있어야 한다.

 


2. .env 파일

PORT=8080
SQUARE_WITH_ME_PASSWORD=12345678

port는 서버 listen 할 포트번호이고 square with me password는 프로젝트 db(mysql)의 root password가 있다.

이 외에도 토큰의 secret key나 kakao 로그인을 위한 api key, secret key등이 있지만 생략

 


3. docker-compose.yml

version: "3.5"
networks:
  nemo-net:
services:
  mysql:
    networks:
      - nemo-net
    image: mysql
    restart: always
    env_file:
      - .env
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD="${SQUARE_WITH_ME_DB_PASSWORD}"
  server:
    networks:
      - nemo-net
    build:
      context: .
      dockerfile: Dockerfile.dev
    restart: always
    env_file:
      - .env
    ports:
      - "${PORT}:${PORT}"
    depends_on:
      - mysql
    links:
      - mysql

 

.env 파일을 사용 시 env_file이라는 옵션을 넣지않고 "$something" 으로 사용 할 수 있다.

아래는 reference.

docker-compose의 env파일 및.env 파일의 차이 - coder-question-ko.com

 

하지만 실행해본 결과 MYSQL_ROOT_PASSWORD가 empty로 설정되는 오류가 있었고,

env_file 옵션을 넣고 다시 실행한 결과 기대한 대로 실행되었다.

'Docker' 카테고리의 다른 글

8. Docker-compose  (0) 2022.03.18
7. Docker 리소스  (0) 2022.03.17
6. Docker network  (0) 2022.03.17
5. Docker container 데이터 유지  (0) 2022.03.17
4. docker 기초(3) 공유하기  (0) 2022.03.17

댓글