springboot项目一键部署到Linux服务器

2020-01-15  本文已影响0人  zss945

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里面添加

<plugin>
   <groupId>com.spotify</groupId>
   <artifactId>dockerfile-maven-plugin</artifactId>
   <version>1.4.0</version>
       <configuration>
       <repository>prefix/${project.artifactId}</repository>
       <tag>${project.version}</tag>
       <contextDirectory>${project.basedir}</contextDirectory>
            <buildArgs>
                <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
           </buildArgs>
       </configuration>
 </plugin>              

第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版本,而是开发者直接发布

分享到此结束,谢谢大家。

上一篇下一篇

猜你喜欢

热点阅读