一、问题
把服务做成镜像,可以解决不同环境的版本同步问题
怎么把一个镜像应用与不同环境呢?
二、解决方案:传递变量
1、准备Dockerfile
FROM docker.io/openjdk:latest
MAINTAINER charle "charle.qq.com"
COPY ./run.sh /run.sh
ENTRYPOINT sh /run.sh && /bin/bash
2、准备run.sh
#!/bin/bash
echo ${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/bash
echo ${active}
java -jar --spring.profiles.active=${active} /data/demo.jar
copy demo.jar就不多说
最后,启动容器时,添加变量
docker run -dit --env active=test --name=testv5 charle/test:v5
这样就完成了启动环境的控制。
版权声明:本文为qq_29945865原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。