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

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

相关推荐
tedcloud1231 小时前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
syntaxsage2 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo2 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
博风2 小时前
eclipse中配置maven,以及在本地使用maven。
java·eclipse·maven
todoitbo12 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖19 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉1 天前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg11 天前
【Docker】镜像相关指令
运维·docker·容器
java_logo1 天前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频1 天前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui