docker安装jenkins
查看官方文档:https://hub.docker.com/_/jenkins
看官方文档,我们只需要知道用法即可。拉去镜像推荐使用jenkins/jenkins的
运行jenkins
[root@192 ~]# docker run -p 8080:8080 -p 50000:50000 -d -v /mydata/jenkins_home:/var/jenkins_home jenkins/jenkins
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
如果报了上面的错误,需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
执行如下命令即可:
[root@192 ~]# chown -R 1000:1000 /mydata/jenkins_home
7b38bbf02a1ed2059e23597ebe8753859dc47ebeae460f2dc53d1dd10bd776b8
# 运行成功后,docker ps 看下
[root@192 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b38bbf02a1e jenkins/jenkins "/sbin/tini -- /usr/…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
然后本地登录下:http://${youhost}:8080/login?from=%2F

需要密码
# 从日志中可以看到密码
[root@192 ~]# docker logs 7b38bbf02a1e
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2022-09-27 12:42:27.244+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @688ms to org.eclipse.jetty.util.log.JavaUtilLog
...
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
3cce7d22e9144751a09e8693ea83c7b0
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
...
输入密码 -> 点击继续 -> 选择安装推荐插件
插件安装完成之后,按照页面要求,创建一个管理员账号

点击新建item,创建一个mall项目


准备运行脚本
我们部署一个springBoot项目。这个springBoot项目我打成了镜像
创建 mall-tiny-jenkins.sh 脚本
#!/usr/bin/env bash
app_name='mall-tiny-jenkins'
profile_active='qa'
version='1.0'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker run -p 8088:8088 --name ${app_name} \
--net mall-docker-compose_default \
--link mysql:db \
-e 'spring.profiles.active'=${profile_active} \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d localhost:5000/mall-tiny/${app_name}:${version}
echo '----start container----'
在 /mydata/jenkins_home下创建目录sh,然后把 mall-tiny-jenkins.sh 脚本放到sh 目录下,并修改其权限
[root@192 ~]# mkdir /mydata/jenkins_home/sh
[root@192 ~]# cd /mydata/jenkins_home/sh
[root@192 sh]# vim mall-tiny-jenkins.sh
[root@192 sh]# chmod 750 mall-tiny-jenkins.sh
[root@192 sh]# ll
总用量 4
-rwxr-x---. 1 root root 495 9月 27 21:07 mall-tiny-jenkins.sh
jenkins 配置
安装SSH 插件
在主页面 -> 点击 manager Plugins


插件安装完成后,返回主页面(Dashboard)
配置 credentials(凭证)



输入用户名和密码
这个用户名和密码,是登录机器使用的,因为要远程执行脚本,所以要登录这台机器。
系统配置设置SSH


配置好之后check connection下
设置时区
默认的时间比北京时间晚8个小时
点击右上角的用户 -> 点击设置

时区选择亚洲-上海,然后点击保存
配置运行脚本
上面准备工作完成之后,配置mall项目的运行脚本


设置好之后,点击保存,回到mall项目的页面,点击立即构建
构建成功后,左下角会有个记录,如果是绿色的对号,表明是成功

查看构建日志
点击运行记录

验证mall-tiny-jenkins 是否运行成功
回到机器上
[root@192 sh]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26a7c8f43153 localhost:5000/mall-tiny/mall-tiny-jenkins:1.0 "java -jar /mall-tin…" 23 seconds ago Up 21 seconds 0.0.0.0:8088->8088/tcp mall-tiny-jenkins
说明已经运行成功了

浙公网安备 33010602011771号