2019-02-13 | 系统运维 | UNLOCK

实战Docker搭建自动化部署环境,远程自动部署SpringBoot

####起因

项目上线运行后,几乎每天都需要更新代码,虽说很简单 ,本地编译,上传,运行,但是每天重复也是一个十分蛋痛的工作,作为一个工程师 一定要杜绝重复劳动。

####Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

####Gitee

云端软件开发协作平台

此时 我的测试服务器 已经安装好了 docker 如果你还没有安装 请先安装
输入 docker -v 可以查看版本

123

####推荐此版本的容器

222

  1. 第一步

    docker pull jenkins/jenkins 下载jenkins

  2. 第二步

    docker images 查看本地镜像
    333
    444

  3. 第三步
    新建一个jenkins 目录

cd /home

mkdir jenkins

最后运行 docker run -d --name myjenkins -p 49001:8080 -v /home/jenkins_home:/home/jenkins -v /var/maven/apache-maven-3.6.0:/usr/maven/apache-maven-3.6.0 -v /var/java/jdk1.8.0_191:/usr/java/java1.8.0_191 jenkins(这个是镜像名称), -v 指定目录映射(把宿主机的 java 和 maven环境映射过去,后续需要进入容器 配置jenkins的 java 和maven 环境)

ps:其中49001:8080,表示docker内部使用8080端口,服务器使用49001端口,然后将二者映射起来,之后在浏览器访问的时候实际上还是访问服务器的49001端口,注意关闭防火墙 或是 开通端口号

此处需要输入 jenkins自动生成的密码

输入 docker exec -it myjenkins bash 进入 myjenkins 容器里面

输入 find -name initialAdminPassword
555
然后 输入cat 命令打印 initialAdminPassword 的内容 复制到页面中

安装成功
666
777
888
9999

在全局工具配置中 配置Java环境 和 maven 环境
00000


ps: 安装Jenkins后首次访问时由于其他原因【具体未知】会产生离线问题。网上找了个遍还是不能解决,所以只能跳过常用插件安装这步。进入Jenkins后再安装这些插件(我这遇到了,我选择换了一个版本就没事了)

####添加常用的插件
ad2d70f43e3242349135378d13b1112ad9b11
234123
2411234
23412342314

接下来开始配置 java 及 Maven环境

JAVA_HOME填写 docker启动命令中 从宿主机映射过来的路径
MAVEN也填写 docker启动命令中 从宿主机映射过来的路径
2341234234

##新建项目

如果没有maven项目可选,那么请先安装 Maven Integration plugin 插件
ad2d70f43e93452345135378d13b1112ad9b11

我这里使用的是 git
453645
567457

此处 V2是重点-》需要现在 系统管理的系统设置 中配置
Source files:需要上传到服务器的jar包
Remove prefix: 需要移除的后缀
Remote directory: 远程目录(此处会和 下面配置的 Remote Directory 做拼接)
Exec command:文件上传后 执行的命令

start.sh:

#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
echo ${JAVA_HOME}
echo "授权当前用户"
chmod 777 /opt/project/ixx-web.jar
 echo "执行...."
cd /opt/project/ 
nohup ${JAVA_HOME}/bin/java -jar ixx-web.jar > aa.out &
echo "启动成功"

stop.sh:

#!/bin/bash
echo "stop SpringBoot BAppApiServerApplication"
pid=`ps -ef | grep ixx-web.jar | grep -v grep | awk '{print $2}'`
echo “旧应用进程id:$pid”
if [ -n "$pid" ]
then
kill -9 $pid
fi

24323423

Passphrase : 服务器登录密码
Hostname: 服务器地址
Username: 用户名
Remote Directory:文件上传的远程目录

43534534

然后保存,立即构建
546456

系统会开始构建
578567

构建成功,此时 jenkins 已经把 master 分支上的代码 编译->打包->上传->运行成功

以上是这次给大家分享的 jenkins搭建 及 springBoot 远程自动部署,谢谢大家阅读

评论加载中