IT/doker

[도커] 도커컴포트에서 환경 변수 적용

generator 2024. 7. 31. 10:34

그동안 보안보다는 개발의 편의성에 집중했었다.

그러다 보니 디비 비밀번호를 형상관리에 같이 커밋해서 사용하고 있었다.

물론 비공개 프로젝트라 노출이 될 일이 없을 거라 믿지만 늘 찜찜했었다.

이번 기회에 비밀번호를 환경변수에 저장하고 도커컴포즈도 환경변수를 사용하는 것으로 변경했다.

도커컴포드에서 환경변수는 2가지 방법으로 지정 할수 있다.

1 .env 파일 사용하기

프로젝트 디렉토리에 .env 파일을 생성하고 환경 변수를 정의한다.

#.env
DB_USER=namo
DB_PASSWORD=secret
#yml
version: '3'
services:
  db:
    image: postgres
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}

2 시스템 환경 변수 사용

쉘 설정에 파라미터를 등록 하고 위같이 동일하게 호출 가능하다.

#.bash_profile (사용하는 쉘에 따러서 다르게 적용)
export DB_USER=namo
export DB_PASSWORD=secret

#source ~/.bash_profile
version: '3'
services:
  db:
    image: postgres
    environment:
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}