Docker部署Springboot项目——多环境

根据不同的环境(dev,prod),配置不同profile启动

application.properties中只需配置spring.profiles.active=dev,当jar启动时没配置spring.profiles.active参数时的默认启动application-testing.properties配置文件

在创建docker镜像中配置ENTRYPOINT

1.DockerFile----dev

FROM openjdk:8-jdk-alpine
VOLUME /tmp
#项目的 jar 文件作为 “app.jar” 添加到容器中;
ADD   demo.jar  app.jar
# Image创建容器时的初始化内存,最大内存,及启动时使用的profile. -c为清除以前启动的数据
ENTRYPOINT ["java","-Xms1024m","-Xmx1024m","-jar","/app.jar","--spring.profiles.active=dev","-c"]

 

2.DockerFile---pro

FROM openjdk:8-jdk-alpine
VOLUME /tmp
#项目的 jar 文件作为 “app.jar” 添加到容器中;
ADD   demo.jar  app.jar
# Image创建容器时的初始化内存,最大内存,及启动时使用的profile. -c为清除以前启动的数据
ENTRYPOINT ["java","-Xms1024m","-Xmx1024m","-jar","/app.jar","--spring.profiles.active=pro","-c"]


存放Dockerfile及需要部署的jar包

使用docker build 构建镜像

//docker build
// . 表示当前目录 -f 参数指定Dockerfile文件  -t 表示 制作的镜像
docker build -f Dockerfile  -t  demodev:v1 .
//docker build
// . 表示当前目录 -f 参数指定Dockerfile文件  -t 表示 制作的镜像  
docker build -f Dockerfile64  -t  demopro:v1 .

查看构建好的镜像

使用docker run 运行打包好的镜像,查看是否能按需求运行

//-d 表示后台运行容器 如果使用-d 
docker run  -d demodev:v1

备注:在前台模式下(不指定-d参数即可),Docker会在容器中启动进程,同时将当前的命令行窗口附着到容器的标准输入、标准输出和标准错误中。也就是说容器中所有的输出都可以在当前窗口中看到。甚至它都可以虚拟出一个TTY窗口,来执行信号中断(不加 -d参数 可能会导致当前shell 窗口始终为容器中进程运行的输出内容,甚至(ctrl+c)都无法中断) 


-d,那么容器将会运行在后台模式。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为容器不再监听你执行docker run的这个终端命令行窗口,只是会输出本次容器启动的containerID。可以使用docker logs containerID 来打印容器应用相关日志’ 

注:启动容器报错iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9095 -j DNAT --to-destination 0.0.0.0/9095 ! -i docker0: iptables: No chain/target/match by that name.

重启docker:systmctl restart docker

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值