springboot项目开发完成后,发布测试环境,需要经过编译,打包,上传,启动等步骤。
如果采用dockerfile-maven-plugin插件+shell脚本组合使用,就可以实现一键部署。
第1步、Linux安装docker
网上教程很多:略过
第2步、开启docker远程API
vi /usr/lib/systemd/system/docker.service
在 ExecStart,后面添加:-H tcp://0.0.0.0:2375
修改完成后,按esc输入:wq退出
执行命令
systemctl daemon-reload //重新加载配置文件
systemctl restart docker.service //重启docker
第3步、添加dockerfile-maven-plugin插件
在pom.xml文件plugins里面添加
com.spotify
dockerfile-maven-plugin
1.4.0
prefix/${project.artifactId}
${project.version}
${project.basedir}
target/${project.build.finalName}.jar
第4步、编写Dockerfile
在springboot项目的根目录新建Dockerfile文件,添加内容如下:
FROM openjdk:8-jdk-alpine
WORKDIR /app/
VOLUME ["/tmp"]
EXPOSE 8080
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
第5步、编写脚本
给不同开发平台的开发者使用
Windows开发者
在springboot项目的根目录新建auto-build.bat文件,添加内容如下
@echo off
echo "auto build ready"
set DOCKER_HOST=tcp://Linux服务器IP:2375
echo "set docker host success"
mvn clean package -Dmaven.test.skip=true dockerfile:build
echo "auto build success"
MacOS开发者
在springboot项目的根目录新建auto-build.sh文件,添加内容如下
#!/bin/bash
echo "auto build ready"
DOCKER_HOST=tcp://Linux服务器IP:2375 mvn clean package -Dmaven.test.skip=true dockerfile:build
echo "auto build success"
脚本编写完毕,执行脚本。
第6步、镜像验证
登录Linux服务器,执行
docker images //查看docker镜像
查看springboot项目镜像,如果存在证明编译,打包,上传都成功了,接下来就是启动镜像了
docker run -itd --name 别名 -p 8080:8080 镜像名称 /bin/bash
镜像启动成功后,可以浏览器验证了,如:http://Linux服务器IP:8080
最后来说说这个插件利弊
好处
1、配置简单,环境要求简单,只需要开发者安装JDK、maven(配置jdk环境变量、maven环境变量)
坏处
1、存在安全风险
2、发布不是通过git版本,而是开发者直接发布
分享到此结束,谢谢大家。