Dockerfile部署Java項目掛載使用外部配置文件
技術博客 http://idea.coderyj.com/
需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新打包,想引入外部配置文件進行打包
1.需求是由于java項目使用的是nacos 而且每次部署nacos服務器ip不一樣導致要重新打包,想引入外部配置文件進行打包 解決方案
SpringBoot配置文件的加載路徑優先級
在講解Docker運行Java項目掛載使用外部配置文件之前,需要了解SpringBoot的配置文件加載路徑優先級~
優先級(從高到低):
工程根目錄:./config/
工程根目錄:./
classpath:/config/
classpath:/
2.當Springboot打成JAR包(不包含配置文件),讀取外部配置文件application.properties時,可以選擇:
- 1.把application.properties放在在項目名.jar的同級目錄下。
- 2.在項目名.jar同級目錄,創建一個config文件夾,把application.properties放進去。
3.項?使?容器內tmp?錄下的application.properties
配置?件
FROM java:8-alpine
ENTRYPOINT java -jar /tmp/app.jar --spring.config.additional-location=/tmp/application.properties
4.最終配置文件
FROM openjdk:8
# 將當前目錄下的*.jar添加到鏡像中去,并且命名為app.jar
ADD ./track-web-exe.jar app.jar
# 開放tcp端口
EXPOSE 8182/tcp
ENV LANG C.UTF-8# copy 修改啟動配置文件 以下2種方法均可以
# COPY ./bootstrap.yml ./config/bootstrap.yml
COPY ./bootstrap.yml ./bootstrap.yml# 鏡像啟動的時候執行這個命令
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar