기본 패턴
bash
docker run --env-file .env -e PORT=4000 my-app설명
- 환경 변수는 "같은 이미지"를 서로 다른 설정으로 실행할 수 있게 만드는 가장 기본적인 통로입니다.
-e KEY=value는 한두 개 값을 빠르게 넘길 때 편하고,--env-file .env는 설정 수가 많을 때 관리가 쉬워집니다.- 보통 이미지 안에는 애플리케이션 코드와 기본값만 넣고, 실제 운영 값은 실행 시점에 분리해서 주입하는 편이 재사용성과 배포 유연성 면에서 좋습니다.
- Compose를 쓸 때도
environment,env_file을 통해 비슷한 아이디어를 이어갈 수 있습니다. - 중요한 건
.env파일이 "편한 설정 묶음"이라는 점이지, 자동으로 안전한 secret storage가 되는 것은 아니라는 점입니다.
짧은 예제
yaml
services:
app:
image: my-app
env_file:
- .env
environment:
PORT: "4000"빠른 정리
| 방식 | 상황 |
|---|---|
-e | 값 몇 개만 바로 전달 |
--env-file | 설정 파일로 묶어서 전달 |
Compose environment | 서비스별 명시적 설정 |
Compose env_file | 공통 설정 파일 재사용 |
주의할 점
.env 파일은 비밀 정보 관리 도구가 아닙니다.
저장소 포함 여부, 배포 환경 분리, 실제 secret 관리 방식까지 함께 설계해야 운영 사고를 줄일 수 있습니다.
참고 링크
2 sources