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

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

相关推荐
Drqf5 小时前
NAS一键安装脚本
docker
❀͜͡傀儡师8 小时前
docker部署PostgreSQL数据库的监控和管理工具
数据库·docker·postgresql
Caarlossss8 小时前
mybatis
java·数据库·tomcat·maven·mybatis·mybatis-spring
阿常呓语10 小时前
colima 的简单使用
docker·colima
hgz071012 小时前
Docker 知识练习题
docker
❀͜͡傀儡师12 小时前
docker部署PruneMate
运维·docker·容器
深耕AI13 小时前
【Docker使用】从拉取到运行
运维·docker·容器
qq_3176203114 小时前
06:Docker安全加固与性能优化
docker·性能优化·权限控制·安全加固·镜像扫描
java_logo14 小时前
ComfyUI Docker 镜像部署指南
运维·docker·容器·comfyui部署·docker部署comfyui·comfyui部署文档·comfyui部署教程
眠りたいです14 小时前
docker-compose:使用docker-compose对多容器应用进行管理并进行wordpress简单站点的搭建
运维·nginx·docker·容器·wordpress·busybox