2015-02-03 3 views
-1

PHP 응용 프로그램을 작성 중이며 개발 환경을 Docker 컨테이너로 만들고 싶습니다. 이를 위해, 내 프로젝트의 루트에 Dockerfile을 만들었습니다.이 패키지는 내 응용 프로그램에 필요한 모든 패키지를 설치하고 구성 파일을 컨테이너에 복사 한 다음 내 응용 프로그램을 설치합니다.Docker를 사용하여 개발 환경을 AWS Elastic Beanstalk에 배포

괜찮 았지만 지금은 내 PHP 응용 프로그램에 development 또는 production 중 어떤 환경인지 알려 주어야합니다. 이것은 또한 쉽게, 난 그냥 내 Dockerfile이를 추가 할 수 있습니다

ENV environment development 

를 지금은 내 이미지를 빌드 할 때, 내 PHP 응용 프로그램이 실행을 development 모드. 이제 Docker 컨테이너 안에 애플리케이션을 빌드 할 수 있습니다.

하지만이 애플리케이션을 프로덕션 서버 (AWS Elastic Beanstalk, 구체적으로)에 배포하려는 경우 어떻게됩니까? 내 Dockerfile에 환경이 development으로 지정된 경우 Elastic Beanstalk에 배포 할 때 내 응용 프로그램이 개발 모드로 실행되지 않습니까?

답변

1

환경 변수를 설정하는 것은 좋은 방법입니다. 그러나 Dockerfile에서이를 수행하면 해당 이미지에서 파생 된 컨테이너에 대해 Dockerfile을 설정하게됩니다. 당신이 정말로하고 싶은 것은 컨테이너 단위로 설정하는 것입니다. 개발을위한

:

docker run --env environment=development my-image

그리고 생산을 위해 :

docker run --env environment=production my-image

이도 작동합니다 당신이 용기를 실행할 때 작업을 수행하는 방법은 설정입니다 Dockerfile에 환경 변수를 설정하면 docker run --env으로 설정된 변수가 Dockerfile에 설정된 값보다 우선합니다.

+0

이제는 문서에서 바로 볼 수있는 --env 플래그를 살펴 보았습니다 ... 그 직전에 건너 뛴 상태 여야합니다. :/ 고맙습니다! :) –

관련 문제