Jenkins——发布项目到docker

本文是基于Jenkins部署在Windows Server,通过把项目推送到远程服务器,使用远程服务器上的docker构建镜像并运行
在这里插入图片描述
本文涉及docker的相关命令和使用
均为alpha0808大佬的指导

在这里插入图片描述

一、准备工作

  1. 部署Jenkins,详情见Windows下安装Jenkins
  2. 添加插件Multiple SCMs、Publish Over SSH

二、配置全局

在Jenkins上全局配置maven、jdk、git,用于部署java项目。

打开Manage Jenkins,点击Global Tool Configuration

在这里插入图片描述

maven配置文件

设置服务器中maven的setting.xml的路径

在这里插入图片描述

jdk

点击安装jdk
在这里插入图片描述
Install automatically(自动安装)勾选去掉,填写服务器上jdk的安装目录
在这里插入图片描述

git

Install automatically(自动安装)勾选去掉,填写git下bin目录+git
在这里插入图片描述

maven

点击maven安装
在这里插入图片描述
Install automatically(自动安装)勾选去掉,填写服务器上maven的目录

在这里插入图片描述
设置完,点击应用

sh配置(windows)

windows上部署的Jenkins无法自动找打可以执行sh,所以需要配置。
在这里插入图片描述

Manage JenkinsConfigure SystemShell设置sh作为脚本程序(我这里使用git的sh作为执行脚本程序)

三、发布项目

3.1 新建项目

点击”新建Item
在这里插入图片描述
输入条目名称,选择"Freestyle project",点击确定

在这里插入图片描述
创建成功
在这里插入图片描述

3.2 常规配置

点击条目,选择"配置"
在这里插入图片描述

3.2.1 丢弃旧的构建

勾选"Discard old builds",设置构建的保持时间和个数,通过删除旧的构建来释放磁盘空间,如果不设置,默认365天删除一次
在这里插入图片描述

3.2.2 设置构建项目参数

构建项目需要通过参数动态构建时使用。

勾选"This project is parameterized",点击"添加参数",选择对应的参数类型
在这里插入图片描述

示例:
通过参数version,设置项目的版本,构建jar至nexus使用

选择String Parameter,设置版本参数version
在这里插入图片描述

3.2.3 源码管理

在实际开发中,我们可以通过svn、git来进行源码管理,因为Jenkins默认只进行了git的源码代理。
在准备工作安装了Multiple SCMs插件,这样就能更自由的选择源码管理方式。这里只说通过Jenkins自带的git源码管理。
设置源码地址:
在这里插入图片描述
使用ssh的git地址,需要创建对应的凭证,点击"Credential"下的"添加"
在这里插入图片描述
设置凭据类型:SSH Username with private key
在这里插入图片描述
设置用户名和对应的ssh凭据(git私钥)
在这里插入图片描述
设置分支
在这里插入图片描述

四、构建和发布

4.1 构建配置

在构建页签下,新增构建步骤"invoke top-level Maven targets"
在这里插入图片描述

4.2 发布

在"构建后操作"页签,点击"增加构建后操作步骤",选择"Send build artifacts over SSH"
在这里插入图片描述
添加对应远程服务器的ip地址
在这里插入图片描述
填写文件路径忽视前缀,以及远程服务器的存放文件路径(我这里是默认把整个文件发布到远程服务器)
在这里插入图片描述
发布后命令,示例如下:

#!/bin/bash
cd jenkinsTest

docker build -t 127.0.0.1/ms/jenkinsTest:1.0.0 .
docker push 127.0.0.1/ms/jenkinsTest:1.0.0

if docker ps -a |awk '{print $NF}'|grep '^jenkinsTest'; then
    docker rm -f jenkinsTest
fi

docker run -d -p 9901:9901 -e JAVA_OPTS="-Xrs -Xms1g -Xmx2g -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m" --env-file=/opt/env.list  -v /data:/data -v /ibase/logs:/ibase/logs  --net=host --name jenkinsTest 127.0.0.1/ms/jenkinsTest:1.0.0

if docker images | grep "<none>"; then
    docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
fi

命令解释如下:

切换dockerfile所在目录

#!/bin/bash
cd jenkinsTest

构建镜像,同时将镜像推向仓库

docker build -t 127.0.0.1/ms/jenkinsTest:1.0.0 .
docker push 127.0.0.1/ms/jenkinsTest:1.0.0

镜像启动前,删除对应的进程,将镜像放入容器启动,然后删除所有none镜像或停止的容器

if docker ps -a |awk '{print $NF}'|grep '^jenkinsTest'; then
   docker rm -f jenkinsTest
fi

docker run -d -p 9901:9901 -e JAVA_OPTS="-Xrs -Xms1g -Xmx2g -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m" --env-file=/opt/env.list  -v /data:/data -v /ibase/logs:/ibase/logs  --net=host --name jenkinsTest 127.0.0.1/ms/jenkinsTest:1.0.0

if docker images | grep "<none>"; then
   docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
fi

4.3 构建

配置保存完毕,返回条目,点击"build now"搞定
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值