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,可以看到构建时,控制台的输出

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

相关推荐
wb0430720113 分钟前
使用 Java 开发 MCP 服务并发布到 Maven 中央仓库完整指南
java·开发语言·spring boot·ai·maven
wwj888wwj3 小时前
Docker基础(复习)
java·linux·运维·docker
DONG9994 小时前
配置docker代理
docker·容器
怎么就重名了4 小时前
docker可以动态修改端口映射吗
运维·docker·容器
JEECG低代码平台5 小时前
敲敲云零代码平台一键部署实战:命令安装 vs Docker 安装
运维·docker·容器
p***76987 小时前
NAS飞牛Docker 部署OmniBox影视资源聚合平台:网盘秒播、影视聚合、自定义直播,超神的一条龙服务
运维·docker·容器
夕除8 小时前
MVN--03
maven
cheoyeon9 小时前
ruoyi-cloud项目开发
spring·spring cloud·maven
爱学习的程序媛9 小时前
Docker 完全指南:从入门到生产级实践
运维·docker·容器
分布式存储与RustFS10 小时前
Windows原生版RustFS:无需Docker,1分钟本地对象存储环境搭建
windows·docker·容器·对象存储·minio·企业存储·rustfs