본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

환경변수2

Docker Compose 달러 기호가 사라질 때: 보간과 컨테이너 셸 구분 Compose의 변수 경고나 빈 문자열이 보이면 먼저 값을 바꾸는 주체가 Compose인지 컨테이너 안의 셸인지 구분하세요. Compose 단계에서 문자 그대로의 달러 기호를 넘기려면 $$를 사용할 수 있지만, 이후 셸이 그 문자를 다시 해석하는지는 별도 문제입니다.원인: YAML을 읽는 단계와 명령 실행 단계를 혼동한다Compose는 설정의 달러 변수 표현을 해석할 수 있습니다. 정의되지 않은 변수에 기본값도 없으면 경고 후 빈 문자열로 바뀔 수 있습니다. 애플리케이션이 실행되기도 전에 값이 달라지는 상황입니다. 컨테이너 환경변수에 같은 이름이 있다는 이유만으로 Compose가 그 값을 알 것이라고 가정하지 마세요.관찰확인 위치다음 판단변수 미정의 경고Compose 입력출처·기본값달러 그대로 전달 필요.. 2026. 10. 21.
Docker Compose .env와 env_file 차이: 환경변수가 적용되지 않을 때 확인할 것 .env 파일에 값을 적었는데 컨테이너 안에서는 보이지 않거나, 파일을 수정했는데 프로그램이 계속 이전 설정을 사용하는 경우가 있습니다. 파일 이름보다 중요한 것은 그 값이 “Compose 설정을 만드는 데 쓰이는지”, “컨테이너의 환경변수로 전달되는지”입니다.앞서 헬스체크와 시작 순서 글에서 변수로 DB 설정을 표현했습니다. 이번에는 민감한 정보 없이 APP_MODE, LOG_LEVEL 같은 가상 설정으로 값이 전달되는 경로를 살펴봅니다.1. .env에 적으면 자동으로 컨테이너에 들어갈까?기본 .env 파일은 Compose 파일의 변수 치환에 사용할 값을 제공하는 역할을 합니다. 예를 들어 image: "myapp:${TAG}"의 TAG 부분을 채우는 데 쓸 수 있습니다. .env에 있는 모든 항목이 .. 2026. 9. 8.