부트스트랩 파일에서 다른 스프링 프로파일을 올바르게 설정하려면 어떻게 해야 합니까(다른 클라우드 구성 서버를 대상으로 하는 스프링 부트용)?
환경마다 다른 구성 서버가 있습니다.각 스프링 부트애플리케이션은 대응하는 설정 서버를 대상으로 합니다.bootstrap.properties 파일에서 프로파일을 설정하여 이를 실현하려고 했습니다.다음은 예를 제시하겠습니다.
spring.application.name=app-name
spring.cloud.config.uri=http://default-config-server.com
---
spring.profiles=dev
spring.cloud.config.uri=http://dev-config-server.com
---
spring.profiles=stage
spring.cloud.config.uri=http://stage-config-server.com
---
spring.profiles=prod
spring.cloud.config.uri=http://prod-config-server.com
그리고 나서 나는 클라라를 세팅했다.-Dspring.profiles.active=dev
그러나 로드된 구성 서버는 항상 파일 내의 마지막 설정입니다(즉, prod config 서버가 위의 설정으로 로드되고 prod가 제거되면 스테이지가 로드됩니다).
클라우드 구성 서버의 부트스트랩 프로파일을 설정할 수 있습니까?저는 이 예를 따라 했지만 제대로 작동하지 않는 것 같습니다.이러한 프로파일은 올바른 Configuration을 로드하는데 매우 효과적이지만(dev 프로파일이 활성화되면 app-name-dev.properties가 로드됩니다), 적절한 Config 서버에서 풀리지 않습니다.
단일 파일에 다른 프로파일을 지정하는 것은 YAML 파일만 지원하며 속성 파일에는 적용되지 않습니다.속성 파일의 경우 특정 환경 지정bootstrap-[profile].properties
기본값에서 속성을 재정의하다bootstrap.properties
.
그래서 당신의 경우 4개의 파일을 얻을 수 있습니다.bootstrap.properties
,bootstrap-prod.properties
,bootstrap-stage.properties
그리고.bootstrap-dev.properties
.
그러나 이 대신 기본 설정만 제공할 수 있습니다.bootstrap.properties
응용 프로그램을 시작할 때 다음 명령을 전달하여 속성을 덮어씁니다.-Dspring.cloud.config.uri=<desired-uri>
어플리케이션으로 이동합니다.
java -jar <your-app>.jar -Dspring.cloud.config.uri=<desired-url>
이 값은 기본 설정 값보다 우선됩니다.
I solved a similar problem with an environment variable in Docker.
부트스트랩.yml
spring:
application:
name: dummy_service
cloud:
config:
uri: ${CONFIG_SERVER_URL:http://localhost:8888/}
enabled: true
profiles:
active: ${SPR_PROFILE:dev}
도커 파일
ENV CONFIG_SERVER_URL=""
ENV SPR_PROFILE=""
Docker-compose.yml
version: '3'
services:
dummy:
image: xxx/xxx:latest
restart: always
environment:
- SPR_PROFILE=docker
- CONFIG_SERVER_URL=http://configserver:8888/
ports:
- 8080:8080
depends_on:
- postgres
- configserver
- discovery
@LarryW (같은 코멘트로 답변할 수 없습니다) :
속성을 명시적으로 추가하는 장점은 환경변수를 설정하지 않은 경우 기본값(이 경우 "dev")을 추가할 수 있다는 것입니다.
언급URL : https://stackoverflow.com/questions/40981861/how-do-you-properly-set-different-spring-profiles-in-bootstrap-file-for-spring
'programing' 카테고리의 다른 글
PHP fopen() 오류: 스트림을 열지 못했습니다.권한 거부 (0) | 2023.03.19 |
---|---|
ESLint broken: 제안이 있는 규칙은 "meta.has Suggestions" 속성을 "true"로 설정해야 합니다. (0) | 2023.03.19 |
Angular UI-Router의 한 상태에서 더 많은 옵션 파라미터 (0) | 2023.03.19 |
Wordpress rest api에서 초안 가져오기 금지 (0) | 2023.03.19 |
componentWillReceiveProps에서 변경된 소품을 확인하는 방법 (0) | 2023.03.19 |