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

说明已经运行成功了

posted @ 2022-09-27 21:39  刘翊扬  阅读(488)  评论(0)    收藏  举报