場景
CentOS7中使用Dockerfile部署后台jar包:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808
在上面使用Dockerfile部署SpringBoot打成的jar包的基礎上,怎樣做到傳遞
動態參數,比如在運行時才指定項目的端口號,或者說在運行時再指定連接
mysql的地址。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
Dockerfile的ENV指令
ENV指令用來在鏡像構建過程中設置環境變量,后續的RUN可以使用它所創建的環境變量
首先更改Dockerfile的內容為
FROM openjdk:8-jdk-alpine MAINTAINER "badaodechengxvyuan" LABEL description="公眾號-霸道的程序猿" WORKDIR app ADD badao.jar /app/badao.jar ENV badao_port ${badao_port} EXPOSE ${badao_port} CMD java -jar /app/badao.jar --server.port=${badao_port}
這里通過ENV聲明一個環境變量badao_port,並且通過${badao_port}引用環境變量
然后再運行jar包時指定啟動后的項目端口就是上面聲明的環境變量
然后重新構建鏡像
docker build -t badaoimagewithparam .
構建成功后運行並通過-e傳遞參數
docker run -d -p 7070:7070 -e badao_port="7070" badaoimagewithparam
這里給其傳遞參數設置其端口號為7070
然后訪問端口服務進行測試