本文共 633 字,大约阅读时间需要 2 分钟。
一、问题
把服务做成镜像,可以解决不同环境的版本同步问题
怎么把一个镜像应用与不同环境呢?
二、解决方案:传递变量
1、准备Dockerfile
FROM docker.io/openjdk:latestMAINTAINER charle "charle.qq.com"COPY ./run.sh /run.shENTRYPOINT sh /run.sh && /bin/bash
2、准备run.sh
#!/bin/bashecho ${ENVT}
3、构建镜像
docker build -t="charle/test:v5" .
4、启动镜像
docker run -dit --env ENVT=1.2 --name=testv5 charle/test:v5
5、查看日志
打印出了传递进去的变量。
三、项目实践
spring boot项目可以通过启动命令 --spring.profiles.active=dev/test来控制使用环境;
将run.sh 修改为
#!/bin/bashecho ${active}java -jar --spring.profiles.active=${active} /data/demo.jar
copy demo.jar就不多说
最后,启动容器时,添加变量
docker run -dit --env active=test --name=testv5 charle/test:v5
这样就完成了启动环境的控制。
转载地址:http://qibsn.baihongyu.com/