小知识:Docker Compose构建Jenkins的实现

Jenkins

创建目标文件夹

$ cd /usr/local $ mkdir docker $ cd docker $ mkdir jenkins $ cd jenkins $ vi docker-compose.yml

创建docker-compose.yml

内容如下:

version: “3.1” services: jenkins: restart: always image: jenkins/jenkins container_name: jenkins ports: # 发布端口 – 8080:8080 # 基于 JNLP 的 Jenkins 代理通过 TCP 端口 50000 与 Jenkins master 进行通信 – 50000:50000 environment: TZ: Asia/Shanghai volumes: – ./data:/var/jenkins_home

安装过程中会出现数据目录权限问题,用以下命令解决:

chown -R 1000 /usr/local/docker/jenkins/data

启动容器

docker-compose up -d

启动完成后访问:http://ip:8080。

解锁 Jenkins

%小知识:Docker Compose构建Jenkins的实现-猿站网-插图

Jenkins 第一次启动时需要输入一个初始密码用以解锁安装流程,使用 docker logs jenkins 即可方便的查看到初始密码。也可以根据提示在容器中查看/var/jenkins_home/secrets/initialAdminPassword文件

docker logs -f jenkins

*************************************************************

*************************************************************

*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.

Please use the following password to proceed to installation:

67b9966bc4334a17ad7a7daef043bac8

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************

*************************************************************

*************************************************************

插件安装

插件是 Jenkins的核心,其丰富的插件可以满足不同人群的不同需求

Jenkins 官网插件地址https://plugins.jenkins.io/

输入初始密码后,选择自选方式安装插件。

%小知识:Docker Compose构建Jenkins的实现-1猿站网-插图

注意:除了默认勾选的插件外,一定要勾选 Publish over SSH 插件,这是我们实现持续交付的重点插件。

%小知识:Docker Compose构建Jenkins的实现-2猿站网-插图

点击安装后,根据网络情况,安装时间不一样,耐性等待即可。

出现部分插件安装失败时,点击重试按钮,多次重试,如果还是无法安装,记住这些插件的名字,稍后可以手动安装。

%小知识:Docker Compose构建Jenkins的实现-3猿站网-插图

安装成功效果图 创建管理员账号

%小知识:Docker Compose构建Jenkins的实现-4猿站网-插图

进入首页

%小知识:Docker Compose构建Jenkins的实现-5猿站网-插图

Jenkins手动安装插件

如下例子为安装中文插件

Manage Jenkins -> Manage Plugins -> Avaliable

%小知识:Docker Compose构建Jenkins的实现-6猿站网-插图

右上角搜索框查找想要安装的插件,选中,点击Download now and install after restart。

%小知识:Docker Compose构建Jenkins的实现-7猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-8猿站网-插图

下载好后,重启Jenkins。

docker-compose down docker-compose up -d

配置 JDK & Maven

上传 JDK 和 Maven 的 tar 包到服务器(容器数据卷目录),进行解压缩。

Manage Jenkins -> Global Tool Configuration(系统管理->全局工具配置)。

安装 JDK

/var/jenkins_home/jdk1.8.0_152

%小知识:Docker Compose构建Jenkins的实现-9猿站网-插图

安装Maven

%小知识:Docker Compose构建Jenkins的实现-10猿站网-插图

点击保存

安装动态参数插件

该插件的主要目的是为了方便我们后面在做项目构建时可以按照版本进行构建(支持一键回滚)

Manage Jenkins -> Manage Plugins -> Avaliable 搜索 Extended Choice Parameter 点击Download now and install after restart。

%小知识:Docker Compose构建Jenkins的实现-11猿站网-插图

配置 Jenkins 的 GitLab SSH 免密登录

交互式进入 Jenkins 容器

docker exec -it jenkins /bin/bash

生成 SSH KEY

ssh-keygen -t rsa -C “your_email@example.com”

查看公钥

cat /var/jenkins_home/.ssh/id_rsa.pub

复制公钥到 GitLab

%小知识:Docker Compose构建Jenkins的实现-12猿站网-插图

手动克隆一次项目,该步骤的主要作用是为了生成和服务器的验证信息

jenkins@730898bc8b96:~$ git clone ssh://git@192.168.50.131:2222/test/test.git Cloning into “test”… The authenticity of host “[192.168.50.131]:2222 ([192.168.50.131]:2222)” can”t be established. ECDSA key fingerprint is SHA256:x21ujjNoJ+7wXGszSI7s70szbK0/+7mTOeDP5h0saMs. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added “[192.168.50.131]:2222” (ECDSA) to the list of known hosts. remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. jenkins@730898bc8b96:~$

查看生成文件

jenkins@730898bc8b96:~$ cd .ssh/ jenkins@730898bc8b96:~/.ssh$ ls -al total 20 drwx—— 2 jenkins jenkins 4096 Apr 9 19:03 . drwxr-xr-x 16 jenkins root 4096 Apr 9 19:03 .. -rw——- 1 jenkins jenkins 2602 Apr 9 18:57 id_rsa -rw-r–r– 1 jenkins jenkins 572 Apr 9 18:57 id_rsa.pub -rw-r–r– 1 jenkins jenkins 222 Apr 9 19:03 known_hosts jenkins@730898bc8b96:~/.ssh$

配置 Publish over SSH

系统管理 -> 系统设置 -> Publish over SSH

%小知识:Docker Compose构建Jenkins的实现-13猿站网-插图

点击新增,其中 Remote Directory 是指 Jenkins 可以在目标服务器操作的目录,选择 Use password, 输入目标服务器密码

%小知识:Docker Compose构建Jenkins的实现-14猿站网-插图

测试能否正常通信

%小知识:Docker Compose构建Jenkins的实现-15猿站网-插图

点击保存

持续交付 Maven 项目

为项目创建标签

在 GitLab 中为项目创建标签

%小知识:Docker Compose构建Jenkins的实现-16猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-17猿站网-插图

在 Jenkins 中创建 Maven Project

在 Jenkins 中创建一个基于 Maven 的任务

%小知识:Docker Compose构建Jenkins的实现-18猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-19猿站网-插图

这里没有Maven 项目选项,需要安装插件 Maven Integration 、Pipeline Maven Integration

%小知识:Docker Compose构建Jenkins的实现-20猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-21猿站网-插图

配置第一次构建

%小知识:Docker Compose构建Jenkins的实现-22猿站网-插图

构建项目

%小知识:Docker Compose构建Jenkins的实现-23猿站网-插图

查看构建日志

%小知识:Docker Compose构建Jenkins的实现-24猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-25猿站网-插图

配置正式构建

增加参数化构建过程

%小知识:Docker Compose构建Jenkins的实现-26猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-27猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-28猿站网-插图

这里使用了 Groovy 脚本来查询最近的 tags 版本,代码如下:

def ver_keys = [ “bash”, “-c”, “cd /var/jenkins_home/workspace/myshop-dependencies;git pull>/dev/null; git remote prune origin >/dev/null; git tag -l|sort -r |head -10 ” ] ver_keys.execute().text.tokenize(” “)

关闭源码管理

%小知识:Docker Compose构建Jenkins的实现-29猿站网-插图

增加构建步骤

%小知识:Docker Compose构建Jenkins的实现-30猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-31猿站网-插图

shell 脚本代码如下:

echo $RELEASE_VERSION cd /var/jenkins_home/workspace/myshop-dependencies git checkout $RELEASE_VERSION git pull origin $RELEASE_VERSION mvn clean package

使用参数化构建项目

%小知识:Docker Compose构建Jenkins的实现-32猿站网-插图

批准 groovy 脚本

%小知识:Docker Compose构建Jenkins的实现-33猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-34猿站网-插图

再次点击参数化构建

%小知识:Docker Compose构建Jenkins的实现-35猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-36猿站网-插图

查看构建日志

%小知识:Docker Compose构建Jenkins的实现-37猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-38猿站网-插图

发送文件或执行远程命令

%小知识:Docker Compose构建Jenkins的实现-39猿站网-插图

%小知识:Docker Compose构建Jenkins的实现-40猿站网-插图

Source files:需要传输到远程目标服务器的文件

**/*.jar,docker/**

Remove prefix:删除前缀。比如传输 **/*.jar,我们打包的 .jar 文件是在 target 目录下的,传输时会一并创建 target 目录,如果不希望创建 target 目录,则可以使用该参数屏蔽掉这些前缀文件夹

Remote directory:在远程目标服务器创建操作目录

myapp

Exec command:在远程目标服务器执行控制台命令

cd /usr/local/jenkins/myapp cp target/myapp-1.0.0-SNAPSHOT.jar docker cd docker docker build -t 192.168.50.128:5000/myapp:v1.0.0 . docker push 192.168.50.128:5000/myapp:v1.0.0 docker-compose down docker-compose up -d docker image prune -f

到此这篇关于Docker Compose构建Jenkins的实现的文章就介绍到这了,更多相关Docker Compose构建Jenkins内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_41779565/article/details/125514664

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker容器服务编排利器详解

2023-3-6 13:23:29

建站知识

小知识:Docker安装LNMP环境的详细过程(可部署TP项目)

2023-3-6 13:30:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索