使用docker-compose部署Jenkins或多或少都会遇到这些问题,以下是使用docker-compose部署jenkins的过程中遇到的一些问题;

一、编写docker-compose.yml

version: '3'
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    restart: always
    ports:  # 绑定端口
      - "10006:8080"
    volumes: # 挂载目录  本地文件夹目录:容器文件夹目录
      - ./data/:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7

这里着重说明两个地方,一个是volumesenvironment,一个是本地映射到容器的配置项,一个是对容器的环境设置;
创建data文件夹sudo mkdir data, 同级目录;
修改文件夹权限sudo chmod 765 data
然后sudo docker-compose up -d, 一般情况直接就运行成功了,完结!撒花,在浏览器中打开一路点点点就好了,然后咱们继续往下看;

二、使用宿主机的docker环境

笔者这里的环境是ubuntu 22.04 server, 理论上linux都可以这样子操作,但或许有差异,请注意!

 ls /usr/bin -l | grep docker

在这里插入图片描述

这里是已经调整好的,正常安装的话应该是root:docker, 我的系统用户名是lhdht, 所以我调整成lhdht, 下面是修改用户的命令,注意修改成自己的用户名,执行完成之后再次使用ls /usr/bin -l | grep docker就是如上图一样docker, 被修改成<用户名>:docker

sudo chown lhdht:docker /usr/bin/docker

进入容器内的Jenkins

docker exec -it jenkins /bin/bash

在这里插入图片描述

这样就进入到容器内的jenkins了,此时docker version会输出完整的版本信息,如果是没有修改用户的话则会出现权限不足的问题!如下是正常的

在这里插入图片描述

三、修改jenkins的环境

这里着重说一下,修改环境变脸的方式有两种(ps:作者知道的就两种,如果有其他的,请评论补充);
docker-compose.ymlenvironment下直接新增既可,PATH=xxxxx

举个栗子:容器内的jenkins使用宿主机的go环境

  • 修改docker-compose.yml, 将宿主机的go sdk目录映射到容器内/usr/local/bin/go:/usr/local/bin/go
  • sudo docker-compose up -d
  • 然后在jenkins控制面板中添加环境变量
/opt/java/openjdk/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/env/go/bin

在这里插入图片描述

为什么要这样子添加环境变量,因为jenkins容器内本身就有PATH, 所以之所以这样是要继承jenkins的环境,理论上所有的环境都可以这样子设置

然后,咱们尝试一下,jenkins是否能获取到宿主机的go环境;

  • 新建一个自由风格的项目
  • 编写shell
  • 构建项目
    在这里插入图片描述
    构建结果:
    在这里插入图片描述

到这里就算简单的完结了,如果遇到什么问题,可以在底下评论,有时间会进行解答的!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐