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

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

相关推荐
MickeyCV11 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
棠十一12 小时前
Rabbitmq
分布式·docker·rabbitmq
藥瓿亭13 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_8097983213 小时前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣13 小时前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器
极简网络科技15 小时前
Docker、Wsl 打包迁移环境
运维·docker·容器
杨浦老苏15 小时前
轻量级Docker管理工具Docker Switchboard
运维·docker·群晖
江湖有缘15 小时前
【Docker管理工具】部署Docker可视化管理面板Dpanel
运维·docker·容器
一加一等于二15 小时前
docker部署postgresql17,并且安装插件
docker·postgresql
猫咪老师199517 小时前
多系统一键打包docker compose下所有镜像并且使用
java·docker·容器