docker-compose安装jenkins全过程

 更新时间:2024年09月25日 10:01:48   作者:海光之蓝  
本文详细介绍了如何在服务器上通过Docker安装和配置Jenkins,包括环境准备、安装JDK和Maven、配置环境变量、修改Maven设置、配置docker-compose.yml文件以及如何解决访问403错误等步骤,此外,还涵盖了如何新建流水线任务并配置pipeline脚本

docker-compose安装jenkins

1、环境准备

准备安装好docker的服务器一台

2、在服务器上创建一个目录用于安装Jenkins

mkdir jenkins

3、下载好要挂载的maven、jkd

并将下载好的tar.gz包上传至服务器待安装目录中并解压

tar -xzvf tar -xzvf apache-maven-3.9.6-bin.tar.gz
tar -xzvf graalvm-jdk-21_linux-x64_bin.tar.gz

4、修改解压后maven中的setting配置文件

主要修改仓库存储路径和镜像仓库

    <localRepository>/root/jenkins/repo</localRepository>
    <!-- 配置阿里云镜像地址 -->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
     <mirrorOf>central</mirrorOf>
    </mirror>

5、配置maven和jdk的PATH挂载文件

git用系统默认的就行,不需要额外配置

mkdir -p ~/jenkins/conf
vi profile

profile内容

export MAVEN_HOME=/usr/local/maven/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH
export JAVA_HOME=/usr/local/java/graalvm-jdk-21.0.2+13.1
export PATH=$JAVA_HOME/bin:$PATH

6、配置jenkins的docker-compose.yml文件

version: '3.9'

services:
  jenkins:
    image: jenkins/jenkins:2.440.2
    container_name: jenkins
    user: root
    restart: always
    deploy:
      resources:
        limits:
          cpus: '1.00'
          memory: 1G
        reservations:
          cpus: '0.10'
          memory: 256M
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      - ./data:/var/jenkins_home
      - ./apache-maven-3.9.6:/usr/local/maven/apache-maven-3.9.6
      - ./graalvm-jdk-21.0.2+13.1:/usr/local/java/graalvm-jdk-21.0.2+13.1
      - ./conf/profile:/root/.bashrc
    environment:
      - TZ=Asia/Shanghai
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/login"]
      interval: 30s
      timeout: 10s
      retries: 8
      start_period: 60s

7、启动好后访问

跟随引导安装推荐插件和创建账户

8、配置环境变量,只需配置

系统管理–全局属性–环境变量:PATH

path获取方法:进入Jenkins的docker中进行获取

docker exec -it jenkins bash
echo $PATH

补充:

以上配置在jenkins中执行mvn -v命令查看mvn对应的java版本时,发现还是旧的版本,跟挂载的版本不一致,这是因为jenkins去执行时使用的是Jenkins启动时的JAVA_HOME导致的,此时需要增加下环境变量进行覆盖就可

查看镜像设置的JAVA_HOME

docker  inspect jenkins/jenkins:2.440.2

PATH变量

/usr/local/java/graalvm-jdk-21.0.2+13.1/bin:/usr/local/maven/apache-maven-3.9.6/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

配置完成后截图:

9、访问403异常错误排查

MESSAGE: No valid crumb was included in the request

处理办法:

将【启用代理兼容】勾上

10、新建一个流水线任务并配置pipeline脚本

pipeline {
    agent any

    stages {
        
        stage('开始') {
            // 开始
            steps {
              echo "开始"
            }
        }
        
        stage('环境检测') {
            steps {
                
                // 构建环境检测
                sh '''
                     cat /proc/version
                     free -m
                     df -h
                     docker -v
                     git -v
                     mvn -v
                     java -version
                   '''
                 echo 'Hello jenkins'
                 
            }
        }
        
        stage('你好 jenkins') {
            // 结束
            steps {
              echo "结束"
            }
        }
        
    }
}

配置截图:

11、保存后点击:立即构建

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker滚动标签无感升级+一键回滚的完整方案

    Docker滚动标签无感升级+一键回滚的完整方案

    本文详细介绍了Docker镜像滚动更新机制,涵盖大版本与小版本升级规则,提供极简命令操作,确保升级无缝无感,覆盖开发、测试、生产全流程,支持运维人员快速掌握,需要的朋友可以参考下
    2026-06-06
  • 浅谈Docker数据持久化

    浅谈Docker数据持久化

    这篇文章主要介绍了浅谈Docker数据持久化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 如何将Docker镜像保存为一个离线的tar归档文件

    如何将Docker镜像保存为一个离线的tar归档文件

    文章描述了如何将Docker镜像保存为离线的tar归档文件,并在其他机器上重新加载的过程,包括保存镜像为tar文件、传输tar文件和在目标机器上加载tar文件为镜像的步骤
    2026-01-01
  • Docker容器端口映射后突然无法连接的排查过程

    Docker容器端口映射后突然无法连接的排查过程

    这篇文章主要给大家介绍了关于Docker容器端口映射后突然无法连接的排查过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 如何根据docker服务保存日志脚本(时间可选版本)

    如何根据docker服务保存日志脚本(时间可选版本)

    在开发基于Docker的应用程序时,能够在日志中查找特定信息并将此数据保存到文件中可以加快故障排除和调试过程,这篇文章主要介绍了如何根据docker服务保存日志脚本(时间可选版本)的相关资料,需要的朋友可以参考下
    2025-11-11
  • 完美解决docker安装mysql后Navicat连接不上的问题

    完美解决docker安装mysql后Navicat连接不上的问题

    这篇文章主要介绍了完美解决docker安装mysql后Navicat连接不上的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker 拉取镜像出错的问题解决

    docker 拉取镜像出错的问题解决

    当Docker拉取镜像遇到网络错误时,通常是因为镜像源无法访问,解决此问题可通过修改Docker的配置文件/etc/docker/daemon.json,设置一个可用的镜像加速地址,修改后重新加载配置并重启Docker服务即可,这样可以提高拉取速度和成功率,避免因网络问题导致的镜像拉取失败
    2024-10-10
  • 关于为Windows Service 2019 使用 Docker的问题

    关于为Windows Service 2019 使用 Docker的问题

    最近收到领导通知,甲方需要将原来的服务器迁移到新的服务器,原来的服务器上安装了很多的服务,每次重启之后总是有很多的问题需要人工大量的进行干预,今天小编通过本文给大家介绍下Windows Service 2019 使用 Docker的问题,需要的朋友参考下吧
    2022-05-05
  • 基于docker 搭建Prometheus+Grafana的过程详解

    基于docker 搭建Prometheus+Grafana的过程详解

    这篇文章主要介绍了基于docker 搭建Prometheus+Grafana的过程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • docker 复制容器的项目实践

    docker 复制容器的项目实践

    本文主要介绍了docker 复制容器的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11

最新评论