使用docker-compose发布springboot项目以及springboot配置文件在不同位置时的优先级

使用docker-compose发布springboot项目以及springboot配置文件在不同位置时的优先级,第1张

使用docker-compose发布springboot项目以及springboot配置文件在不同位置时的优先级

目录
  • 1 位置相同时,后缀不同的优先级
  • 2 配置文件在不同位置时的优先级
    • 2.1 默认启动,配置文件打包进jar包
    • 2.2 在jar包同级目录下也有一份配置文件
    • 2.3 docker-compose部署时,docker-compose文件中也包含配置(重点)
  • 3 结论

1 位置相同时,后缀不同的优先级

当properties、yaml和yml三种文件路径相同时,三个文件中的配置信息都会生效,但是当三个文件中有配置信息冲突时,加载顺序是:

yml > yaml > properties

2 配置文件在不同位置时的优先级

创建一个springboot项目
controller层

@RestController
@RequestMapping
public class TestController {

    @Value("${person.name}")
    private String name;

    @GetMapping("/test")
    public String test(){
        return name;
    }

}

yml配置文件

server:
  port: 7777
person:
  name: lvxy
2.1 默认启动,配置文件打包进jar包

默认启动时,无其他位置配置文件,则加载默认的配置文件

java -jar xxx.jar

2.2 在jar包同级目录下也有一份配置文件

jar包同一目录下优先级大于默认配置


application.yml

server:
  port: 7777
person:
  name: lvxy

启动

2.3 docker-compose部署时,docker-compose文件中也包含配置(重点)

docker-compose中优先级最高,而且同一docker-compose文件中后面配置会覆盖前面配置

项目目录

Dockerfile文件

FROM daocloud.io/library/java:8-jdk-alpine
WORKDIR /code
COPY 11-ymltest-0.0.1-SNAPSHOT.jar 11-ymltest-0.0.1-SNAPSHOT.jar
COPY application.yml application.yml
CMD ["java","-jar","11-ymltest-0.0.1-SNAPSHOT.jar"]

application.yml

server:
  port: 7777
person:
  name: lvxy

docker-compose文件

version: "3.1"
services:
  java:
    build: .
    environment:
      person.name: liujian
    environment:
      person.name: liao
    ports:
      - 7777:7777

构建运行

[root@k8s-master java]# docker-compose up -d --build

Creating network "java_default" with the default driver
Building java
Step 1/5 : FROM daocloud.io/library/java:8-jdk-alpine
 ---> 3fd9dd82815c
Step 2/5 : WORKDIR /code
 ---> Using cache
 ---> 7fc06517d955
Step 3/5 : COPY 11-ymltest-0.0.1-SNAPSHOT.jar 11-ymltest-0.0.1-SNAPSHOT.jar
 ---> Using cache
 ---> 28c708480758
Step 4/5 : COPY application.yml application.yml
 ---> 8ed5d1b0474b
Step 5/5 : CMD ["java","-jar","11-ymltest-0.0.1-SNAPSHOT.jar"]
 ---> Running in 936c99ff0a8c
Removing intermediate container 936c99ff0a8c
 ---> b4a8fab8fee8
Successfully built b4a8fab8fee8
Successfully tagged java_java:latest
Creating java_java_1 ... done

结果:

3 结论

docker-compose.yml > ./application.yml > resoures/application.yml

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5432332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存