Docker는 빌드 시 변수에는 `ARG`를, 런타임 변수에는 `ENV`를 사용하며, 각각 서로 다른 구성 목적을 가지고 있습니다. `ARG` 값은 이미지 빌드 프로세스 중에만 사용 가능하며 애플리케이션 코드에서는 접근할 수 없습니다. `ENV` 변수는 Dockerfile과 실행 중인 컨테이너의 애플리케이션 코드 모두에서 접근 가능합니다. `ENV` 변수는 Dockerfile에서, `docker run` 명령어를 통해, 또는 `.env` 파일을 통해 설정할 수 있으며, 런타임 값이 Dockerfile의 기본값을 덮어씁니다. 보안 위험 때문에 민감한 데이터를 환경 변수로 Dockerfile에 직접 저장하는 것은 권장하지 않습니다. 이미지에 포함되기 때문입니다. 대신 민감한 정보에는 별도의 환경 파일을 사용하고 버전 관리에서 제외해야 합니다. `ARG`는 `--build-arg` 플래그를 사용하여 빌드 시 기본값을 설정할 수 있도록 하여 구성 유연성을 향상시킵니다. Docker 빌드를 최적화하려면 불필요한 재설치를 피하기 위해 종속성 설치 후에 `ARG` 변수를 정의하십시오. `ARG`와 `ENV`를 적절히 사용하면 유연하고 구성 가능하며 안전한 Docker화된 애플리케이션을 구축하는 데 기여합니다. 이러한 차이점을 이해하면 개발자는 보안과 효율성을 유지하면서 워크플로를 개선하는 데 도움이 됩니다.
dev.to
Mastering Docker ARG and ENV: Optimizing Configuration for Development and Production
Create attached notes ...