群晖安装 jenkins 遇到的问题
01-31. 2.55 分钟
背景:
前几天在群晖上安装 jenkins 时,遇到了一些问题,记录一下。由于需要打包 docker 镜像同时通过 jenkins 进行部署。
问题
- 首先执行 docker 命令,发现提示没有权限;
此时我们需要映射群晖系统系统上的 docker.sock 文件,这样 jenkins 就可以使用 docker 命令。记住需要 root 用户,不然启动失败。
- 其次执行 docker 命令,提示
docker is not command
;
这个问题是因为 jenkins 容器中没有安装 docker 客户端,我们需要安装 docker 客户端。
解决方案
群晖安装 jenkins 时,需要注意的几点:
-
一般我们在群晖上面安装 jenkins,会使用 docker 安装,这样可以方便的管理 jenkins 的版本,同时也不会影响群晖的其他服务。
-
安装 jenkins 的时候,需要映射 docker.sock 文件,这样 jenkins 可以使用 docker 命令,同时也可以使用 docker 命令启动其他容器。
/var/run/docker.sock:/var/run/docker.sock
-
TIPS: 安装 jenkins 的时候,需要安装 docker 客户端,这样 jenkins 可以使用 docker 命令,同时也可以使用 docker 命令启动其他容器。
如何安装 docker 客户端
第一种方式
-
我们首先进入 docker 容器,然后安装 docker 客户端
docker exec -it jenkins bash
-
安装 docker 客户端
apt-get update apt-get install -y docker.io
-
安装完成后,我们可以使用 docker 命令
docker --version
这种情况有个问题,就是每次重启 jenkins 容器,都需要重新安装 docker 客户端。
第二种方式
-
我们可以通过流水线的方式,进行安装,但是需要注意的是,我们需要在 jenkins 的容器中安装 docker 客户端,这样我们可以使用 docker 命令。
pipeline { agent any stages { stage('Install Docker') { steps { sh 'apt-get update' sh 'apt-get install -y docker.io' } } } }
每次构建都会安装 docker 客户端,这样就可以使用 docker 命令。但是这种方式也有个问题,就是每次构建都会安装 docker 客户端,这样会浪费时间。