실행 가능한 JAR이 포함 된 이미지를 "융합"하려고하는 boxfuse 를 가지고 놀았습니다 . 내 실행 가능한 JAR에는 다음과 같이 구성 파일의 경로가 기본 메서드에 대한 인수로 제공됩니다.
java -jar my-executable.jar -conf /some/path/to/my/conf.json
conf.json
포트, 데이터베이스 연결 속성 등으로 구성 할 JAR의 프로세스가 파일 을 읽는 위치입니다.
을 사용하여 사용자 지정 인수를 전달하는 방법을 이해 -jvm.main.args="-conf /some/path/to/my/conf.json"
하지만 구성 파일을 이미지 자체에 가져 오는 방법을 모르겠습니다. 분명히 경로는 이미지 내에 존재하는 유효한 파일을 가리켜 야합니다 .
개발, 테스트 및 프로덕션에서 동일한 실행 가능한 JAR을 사용하고 각 환경에 대해 다른 구성 파일을 사용하고 싶습니다. 나는 현재 각 환경에 대해 다른 이미지를 갖는 방법을 보지 못했습니다. Dropwizard 페이로드를 사용하여 특정 구성 을 패키징하기위한 일부 지원이 있지만 실행 가능한 JAR에 대해 유사한 언급은 없습니다.
에서 참조 할 수있는 예측 가능한 경로를 사용하여 임의의 파일을 이미지로 패키징 할 수있는보다 일반적인 방법이 jvm.main.args
있습니까?
내 경우에는 실행 가능한 JAR이 Vert.x 응용 프로그램이지만 일반적인 경우가 적용된다고 생각합니다.
수행 할 수있는 작업은 실행 가능한 JAR 파일 내에 모든 환경 (개발, 테스트 및 프로덕션)에 대한 구성을 패키징하는 것 입니다. 따라서 dev.json, test.json 및 production.json이 있습니다.
그런 다음 예를 들어 환경 변수와 함께 환경 감지 와 같은 기술을 사용하여 런타임에 올바른 환경을 감지하고 올바른 구성을 선택하면 파일 시스템 대신 클래스 경로에서로드 할 수 있습니다.
이렇게하면 jar 파일과 Boxfuse 이미지를 한 번만 빌드하고 모든 환경에서 변경하지 않고 실행할 수 있습니다.
추신 : 가까운 장래에 일류 Vert.x 지원을 추가하여 일을 더 쉽게 할 수 있도록 문제를 제기했습니다 : https://github.com/boxfuse/boxfuse-issues/issues/28
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다