在平常开发中,我们都会在项目配置多个配置文件,有dev/prod/test等不同的yml文件,打包时候会把配置文件同时包含在内,或者在nacos之类的中间件,读取相关配置。在K8S配置文件支持ConfigMap配置表单独部署。
该文章的思路的就是使用外部挂载文件结合ConfigMap配置表实现外部容器对spring boot的配置。
FROM java:openjdk-8-jre-alpine
WORKDIR /home
# 镜像的目标目录在/home/app.jar路径下,如果有k8s自定义配置 这个目录很重要
COPY boot270/target/*.jar /home/app.jar
EXPOSE 9000
ENV TZ "Asia/Shanghai"
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
ENTRYPOINT ["java","-jar","/home/app.jar"]
优先级高于容器内部默认配置
该种方案的缺点很明显: 就是需要一条一条配置添加
使用该方法之前我们需要知道Springboot执行配置文件的优先级
|-- application.yml
|-- config
| `-- application.yml
`-- springboot-demo-1.0-SNAPSHOT.jar
在上面的目录结构中, 经过测试boot读取配置文件的优先级是config/application.yml
> application.yml
> jar包内application.yml
.
yml直接配置模式
测试配置已经生效