docker安装jenkins,并配置jdk、node和maven

拉取jenkins镜像

bash 复制代码
docker pull jenkins/jenkins:2.468-jdk21

创建一个文件夹,用于二次打包jenkins镜像

bash 复制代码
mkdir -p /data/jenkins
cd /data/jenkins

提前准备好jdk和maven,并放到/data/jenkins下

由于3.8.x以上版本的maven只支持https协议,我们需要覆盖原有的settings.xml,让它支持http

准备settings.xml,文件内容如下

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
</settings>

我们需要将镜像进行二次打包,把我们所需要的东西都加进去,新建Dockerfile

bash 复制代码
FROM jenkins/jenkins:2.468-jdk21
EXPOSE 8080

# 将maven和jdk添加到容器中
# tar.gz添加进去后会自动解压,无需手动解压
ADD apache-maven-3.9.8-bin.tar.gz /usr/local
ADD jdk-8u421-linux-x64.tar.gz /usr/local
# 覆盖容器里的settings.xml
ADD settings.xml /usr/local/apache-maven-3.9.8/conf/

ENV TZ=Asia/Shanghai
ENV M2_HOME=/usr/local/apache-maven-3.9.8
# 配置java和maven的环境变量
ENV PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH

提前创建好jenkins_home,并授予最高权限

bash 复制代码
mkdir jenkins_home
chmod +777 jenkins_home

现在/data/jenkins下就会有这么几个文件

进行二次打包

bash 复制代码
docker build -t jenkins .

打包后,就能看到我们打包后的镜像

如果jenkins容器里想使用docker命令,需要提前授予docker权限

bash 复制代码
chmod +777 /var/run/docker.sock

然后我们把容器运行起来吧

bash 复制代码
docker run -d --name jenkins \
-p 0.0.0.0:8080:8080 \
-v /data/jenkins/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /run/docker.sock:/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
jenkins

访问你的ip地址:8080即可看到jenkins的首页

获取密码

bash 复制代码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

看到这个页面后,安装推荐的插件即可

等待插件安装完成

安装完成后会弹出以下页面,使用admin账户登陆就可以了

进入Jenkins后,到security,修改管理员密码

修改成你想要的密码

进入插件管理

搜索nodejs插件,进行安装

进入工具配置

配置jdk的路径,点击新增jdk,别名随便填,JAVA_HOME就是容器中jdk的路径,刚刚在Dockerfile添加进来的路径

配置node路径,点击新增NodeJS,别名随便填,勾选自动安装,版本号选择你想要的版本号,保存即可

开始测试

新建一个项目

任务名称随便填,选择流水线

找到流水线,输入测试脚本,保存

脚本如下

Groovy 复制代码
pipeline {
    agent any
    tools {
        jdk 'jdk8'
        nodejs 'node11.0.0'
    }
    stages {
        stage('test') {
            steps {
                script {
                    sh """
                        docker -v
                        java -version
                        mvn -v
                        node -v
                        npm -v
                    """
                }
            }
        }
    }
}

点击立即构建

这里会显示构建状态

点进去,然后点击Console Output,可以看到构建时,控制台的输出

在控制台中即可看到刚刚打印的版本号

相关推荐
冰封之寂8 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
技术小结-李爽8 小时前
【工具】pom文件的<packaging>
java·maven
952369 小时前
Docker - 基础
运维·后端·docker·容器
Code_Ignis10 小时前
docker国内可用源(持续维护)
运维·docker·容器
砚底藏山河12 小时前
多家股票数据接口对比、企业级股票数据API
java·python·金融·maven
水中加点糖16 小时前
Java中使用远程PlayWright进行网页接口测试(附Docker部署方式)
java·docker·web测试·devtools·playwright·ai自动化测试
梦梦代码精17 小时前
PHP 还是 Java?LikeShop 多版本对比,附6条落地避坑建议
低代码·docker·开源·代码规范
zerwave19 小时前
深入理解 Docker 的“层”(Layer)
docker·容器
Q渡劫19 小时前
MinIO 从下载到集成 Spring Boot 完整教程
spring boot·spring·maven
霁月的小屋19 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器