2015-01-21 4 views
4

스프링 부트 애플리케이션 용 Dockerfile을 만들고 있습니다. 응용 프로그램에는 두 가지 명령 행 매개 변수가 필요합니다. Dockfile의 끝에 :Dockerfile을 매개 변수화하는 방법은 무엇입니까?

CMD 자바 -jar application.jar에는 --bucket = bucket.list --key =

을 잃은하지만 bucket의 값을 하드 코딩하는 가장 좋은 방법이며, Dockfilekey?

괜찮 으면 그걸로 살 수 있습니다. 그렇지 않으면 Dockfile을 매개 변수화하는 방법을 알고 싶습니다.

응용 프로그램이 AWS에 배포되어 더 많은 제안을 얻으면 문이 열립니다.

답변

4

Docker 이미지를 작성할 때를 포함하여 Docker 디자인은 가능한 한 호스트 환경의 독립성에 중점을 두었습니다. Docker가 호스트 환경 변수에 액세스 할 수 있도록하기 위해 a request이 있었지만 호스트 시스템의 독립성을 찾지 못했습니다. 또한 문제 해결에 도움이되는 몇 가지 해결 방법에 대해 설명합니다.

어쨌든, Application.jar을 어떻게해야합니까? 응용 프로그램이 컨테이너 내부에서 실행 중이라고 가정 할 경우 컨테이너를 시작할 때 실행되는 사용자 정의 스크립트를 사용하는 것이 올바른 방법입니다. 컨테이너를 시작할 때 설정할 수있는 환경 변수에서 자격 증명 또는 액세스하려는 기타 정보를 설정할 수 있습니다. docker run -e "MYKEY=secret" -e "MYBUCKET=bucket" myuser/myapp /my/custom/script

+0

내 응용 프로그램은 Spring Boot를 기반으로하는 REST 응용 프로그램입니다. – Chiron

+0

Spring (Spring Boot)에 대한 경험이 없지만 Webapp 서버 (Tomcat/Jetty ...)로 앱을 포장하는 방법이라고 생각합니다. 그렇지 않습니까? 그렇다면 Docker 빌드 중에 컨테이너를 시작할 때 (사용자 정의 시작 스크립트를 사용하거나 명령을 직접 실행하여 시작할 때) 실행해야한다고 생각합니다. 따라서 Dockerfile에서 이러한 매개 변수에 액세스 할 필요는 없지만 시작 스크립트에서 매개 변수를 환경 변수로 전달할 수 있습니다. –

관련 문제