使用docker初始化Jenkins
- 安装镜像(官网推荐)
docker pull jenkinsci/blueocean
# 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件
- 创建挂载文件夹
mkidr -pv /home/<用户名>/jenkins_home
# -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
# -v, --verbose - 每次创建新目录都显示信息
- 更改目录权限
chown -R user[:group] file
- 创建容器
docker run \
-u root \
--rm \
-d \
-p 8085:8080 \
-p 50000:50000 \
-v $HOME/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--name jenkins-blueocean \
jenkinsci/blueocean
# -rm 关闭时自动删除Docker容器。如果您需要退出Jenkins,这可以保持整洁。
# -d 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
# -p 前一个端口号用来访问(这个镜像端口要给默认的8080端口)。后一个端口号进行通信(不太懂)。
# -v $HOME一般是/home/<your-username>。 守护进程目录通常是在var/run。
- 进入容器
docker exec -it jenkins-blueocean bash
# jenkins-blueocean是创建容器时命的名
- 访问jenkins控制台日志
docker logs jenkins-blueocean
# 日志中有默认的管理员密码
- 开防火墙
# 如果使用的是服务器,需要去对应平台在防火墙中开启端口访问
登陆Jenkins
- 使用ip访问Jenkins
ip:端口号
# ip即自己服务器的公网ip,端口号就是自己开放的端口
- 初始化jenkins页面时,需要管理员密码
# 1. /var/jenkins_home/secrets/initialAdminPassword 类似这种的文件里有
# 2. 这时候使用【docker logs 容器名】,在刚创建成功容器时可以看到里面有密码
# 类似*************************************************************中夹着的
- 在安装完插件后进入创建页面
安装插件可能有有些失败
# 进去后,系统管理 -> 插件管理 -> 可选插件 中取搜索安装
-
输入信息后,默认点下去就行了
-
我自己的重启失败,docker挂了,重启就好了,然后登陆(后面几次重启都挂了)
初步使用Jenkins
- 每一次新增插件后最好都要重启一下(安装插件后勾选一个方块就会自动重启的)
2. …
插件配置
- 需要下载相应的插件
大致插件有:Maven Integration、Gitee(自带有Github)等等
- Publish Over SSH 插件用来远程连接其他服务器(如果不需要远程,则不需要它)
要首先在jenkins服务器上生成私钥,然后将公钥推送到服务器(这里的服务器指其他远程服务器)上
SSH Servers(可以填写多个,就是如果项目负载在多个服务器的话,可以这么搞)
- Gitee 配置
先在系统设置中Manage Credentials中添加全局凭证
私人令牌,如下图:
然后将生成的令牌复制保存,进入Manage Credentials中添加
最后在系统配置中添加
- Maven可以用Jenkins自动安装配置,也可以自己事先在服务器中下载好,放上路径就行
流程:事先编写好dockerfile,编写一个启动脚本(删除容器进程,删除旧镜像,利用dockerfile生成新镜像,然后镜像生成容器);在jenkins中新建一个任务,填写git代码库,然后编写构建脚本(脚本内容就是maven的install、package一套,最后启动之前编写好的启动脚本)。