启动docker的时候如何把参数传递给docker里面的项目(推荐)

2024-02-23 0 847

很多时候我们要把自己本地的项目打成一个docker镜像

大部分都是Tomcat或者现在很流行的springboot项目

如果只是带参数运行一个springboot项目是很简单的,如下

java -Dserver.port=8080 -jar xxx.jar

以上命令就把端口号设置为8080启动jar包,无需去改jar包里面的配置文件

但是如果已经把这个jar包打成了镜像之后,怎么传递呢

看下docker run的参数选项,里面有一个-e,环境变量

一开始被"环境"两个字误导了,以为就跟我们装JDK的时候说的环境变量是一个意思

其实也可以用来传递普通变量,如下

1,springboot项目

先改Dockerfile:

FROM java:8
ADD microsoft.jar /root
ENV PARAMS=\”\”
ENTRYPOINT [\”sh\”,\”-c\”,\”java $PARAMS -jar /root/microsoft.jar\”]

构建镜像命令:

docker build -t 镜像名称 .

启动命令:

docker run -d -e PARAMS="-Dserver.port=8080" -p 2000:8080 镜像名称

这样jar包在启动的时候就会去读输入变量

2,Tomcat项目

Dockerfile:

#基本镜像
FROM centos
#把你上传的jdk放到docker容器里面的root目录下
ADD jdk-8u11-linux-x64.tar.gz /root
#把你上传的Tomcat放到docker容器里面的root目录下
ADD apache-tomcat-7.0.57.tar.gz /root
#设置环境变量
ENV JAVA_HOME /root/jdk1.8.0_11
#设置环境变量
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#设置环境变量
ENV CATALINA_HOME /root/apache-tomcat-7.0.57
#设置环境变量
ENV CATALINA_BASE /root/apache-tomcat-7.0.57
#设置环境变量
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV PARAMS=\”\”
#执行startup.sh并打开日志
ENTRYPOINT echo $PARAMS > /root/params.txt && /root/apache-tomcat-7.0.57/getParams.sh && /root/apache-tomcat-7.0.57/bin/startup.sh && tail -F /root/apache-tomcat-7.0.57/logs/catalina.out
/root/params.txt 存放参数的TXT文件
getParams.sh 读取参数的脚本
startup.sh 读完参数启动Tomcat

启动命令:

docker run -d -e PARAMS=\”user=root&pwd=lw123\” -p 2000:8080 params

这样Tomcat在启动之前就会先去处理你传递的参数,怎么处理就根据实际的业务来处理

到此这篇关于启动docker的时候怎么把参数传递给docker里面的项目的文章就介绍到这了,更多相关启动docker传递参数内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Linux服务器 启动docker的时候如何把参数传递给docker里面的项目(推荐) https://www.u-9.cn/server/linux/172821.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务