docker-compose部署Jenkins

使用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
  • 构建项目
    在这里插入图片描述
    构建结果:
    在这里插入图片描述

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

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Docker Compose 部署 Jenkins 可以简化 Jenkins 的安装和配置过程,提高部署效率和可维护性。 以下是部署 Jenkins 的 Docker Compose 文件示例: ``` version: '3' services: jenkins: image: jenkins/jenkins:lts ports: - "808:808" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home environment: - JAVA_OPTS=-Djenkins.install.runSetupWizard=false networks: - jenkins_network volumes: jenkins_home: networks: jenkins_network: ``` 在该示例中,我们定义了一个名为 `jenkins` 的服务,使用了 Jenkins 官方提供的 `jenkins/jenkins:lts` 镜像。我们将 Jenkins 的 808 和 50000 端口映射到主机的同名端口,以便我们可以通过浏览器访问 Jenkins。我们还将 Jenkins 的数据目录 `/var/jenkins_home` 挂载到了 Docker 卷 `jenkins_home` 中,以便我们可以在容器重启后保留 Jenkins 的配置和数据。我们还设置了一个环境变量 `JAVA_OPTS=-Djenkins.install.runSetupWizard=false`,以禁用 Jenkins 的安装向导。最后,我们将 Jenkins 容器连接到一个名为 `jenkins_network` 的 Docker 网络中。 要部署 Jenkins,只需在包含上述 Docker Compose 文件的目录中运行以下命令: ``` docker-compose up -d ``` 该命令将启动 Jenkins 容器,并将其连接到 `jenkins_network` 网络中。我们可以通过浏览器访问 `http://localhost:808` 来访问 Jenkins。在第一次访问时,我们需要输入初始管理员密码,该密码可以在容器日志中找到。输入密码后,我们可以按照向导完成 Jenkins 的配置。 希望这个回答对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨花炖海棠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值