SpringBoot容器化的多环境配置

2023-02-14  本文已影响0人  言午日尧耳总

SpringBoot容器化的多环境配置

简单例子

* src
    * main
        * java
            * com.xxc.hello // 路径太长就直接这么写了
                * controller
                    * HelloController.java
                * HelloWorldApplication.java
        * resources
            * application.yml
            * application-dev.yml
            * application-prod.yml
* pom.xml
* Dockerfile
env: dev-env
env: prod-env
spring:
  profiles:
    active: dev
@EnableAutoConfiguration
@SpringBootApplication
public class HelloWorldApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}
@RestController
public class HelloController {

    @Value("${env}")
    private String env;

    @GetMapping("/env")
    public String getEnv() {
        return env;
    }

}

使用参数指定生效配置

# 不指定则使用application.yml里指定的环境
java -jar hello.jar

# 环境中指定生效环境
# 以下命令代表指定使用application-prod.yml配置
java -jar hello.jar --spring.profiles.active=prod

容器配置

...略

ENV env=dev
CMD java -jar hello.jar --spring.profiles.active=$env
docker run --name hello -dp 8080:8080 -e env=prod hello:latest
上一篇下一篇

猜你喜欢

热点阅读