1

저는 Computers Engine에 Dockersing하고 배포하는 작은 NodeJS/Express 앱을 만들고 있습니다. 내 docker-compose.yml을 개발 용으로 설정 했으므로 (다시 빌드하지 않고 변경할 수 있도록 내 소스 디렉토리를 마운트 중입니다.)Docker & Docker Compose - 딱딱한 이미지는 있지만 DEV는 마운트 볼륨을 COPY합니다.

제작 준비가되면 이미지를 만들고 Google Cloud의 컨테이너 레지스트리로 푸시합니다. 그렇게 할 때 이미지에 내 소스 코드를 굽고 싶습니다. 참고 :이 프로젝트는 1 인 프로젝트이므로 어떤 CI도 설정하지 않습니다. 나는 내 DockerfileCOPY으로 이것을 할 수 있지만 개발을 위해 같은 Dockerfile을 사용합니다. 생산 및 개발을 위해 다른 Dockerfile을 사용하는 것이 좋습니까? 아니면 Dockerfile 내에서 조건 적으로이 작업을 수행 할 수있는 방법이 있습니까? 뭔가 같은 ...

if ENV=production 
    COPY blah ./ 
    ... 

답변

1

모범 사례는 생산, 개발을위한 별도의 고정 표시기 파일을 유지하는 것입니다, 그리고 을 테스트하는 이유가 다른 환경에있을 그 3 단계에 사용할 수 있다는 것입니다 그리고 오래 유지하기가 쉽다

항상 최소한 당신의 고정 표시기 파일을 유지하고 논리적 작업

+1

감사 Kalanamith 스크립트를 .sh로 사용 실행합니다. 실제로 나는 부작용없이 양쪽 모두 (복사와 마운트)를 할 수 있었기 때문에 오직 하나의'Dockerfile' 만 필요하고'.dockerignore'를 사용했습니다. –