Docker部署Springboot项目——多环境
根据不同的环境(dev,prod),配置不同profile启动application.properties中只需配置spring.profiles.active=dev,当jar启动时没配置spring.profiles.active参数时的默认启动application-testing.properties配置文件在创建docker镜像中配置ENTRYPOINT1.DockerF...
根据不同的环境(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
更多推荐
所有评论(0)