一、文件层级
/data/
└── jenkins_script/
├── docker-compose.yml
├── dockerfile
└── start_jenkins_server.sh
1.1 dockerfile
FROM jenkins/jenkins:lts
USER root
# 安装 curl、tar、git、sshpass
RUN apt-get update && apt-get install -y curl tar git sshpass && apt-get clean && rm -rf /var/lib/apt/lists/*
# 安装 Temurin OpenJDK 17
RUN curl -fsSL https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.12%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar.gz \
-o /tmp/openjdk17.tar.gz && \
tar -xzf /tmp/openjdk17.tar.gz -C /opt && \
rm /tmp/openjdk17.tar.gz
ENV JAVA_HOME=/opt/jdk-17.0.12+7
ENV PATH=${JAVA_HOME}/bin:${PATH}
# 安装 Temurin OpenJDK 8
RUN curl -fsSL https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz \
-o /tmp/openjdk8.tar.gz && \
tar -xzf /tmp/openjdk8.tar.gz -C /opt && \
rm /tmp/openjdk8.tar.gz
ENV JAVA8_HOME=/opt/jdk8u372-b07
# 安装 Maven
ARG MAVEN_VERSION=3.9.4
RUN curl -fsSL https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
-o /tmp/maven.tar.gz && \
tar -xzf /tmp/maven.tar.gz -C /opt && rm /tmp/maven.tar.gz
ENV MAVEN_HOME=/opt/apache-maven-${MAVEN_VERSION}
ENV PATH=${MAVEN_HOME}/bin:${PATH}
USER jenkins
1.2 docker-compose.yml
version: '3'
services:
jenkins:
image: jenkins-jdk-maven:latest
restart: unless-stopped
container_name: jenkins
user: root
ports:
- "8080:8080"
- "5000:5000"
volumes:
- /data/jenkins_home:/var/jenkins_home
- /root/.ssh/id_ed25519:/root/.ssh/id_ed25519
- /root/.ssh/id_ed25519.pub:/root/.ssh/id_ed25519.pub
1.3 start_jenkins_server.sh
# 启动 jenkins 服务
# 构建
docker build -t jenkins-jdk-maven .
# jenkin 数据路径
JENKINS_HOME="/data/jenkins_home"
if [ ! -d "$JENKINS_HOME" ]; then
echo "目录不存在: $JENKINS_HOME"
mkdir -p "$JENKINS_HOME"
echo "创建目录完成"
else
echo "目录存在: $JENKINS_HOME"
fi
# 赋予权限
chown -R 1000:1000 "$JENKINS_HOME"
# 启动
docker compose up -d
二、启动
[root@localhost jenkins_script]# chmod +x start_jenkins_server.sh
[root@localhost jenkins_script]# ./start_jenkins_server.sh
三、查看密码
[root@localhost jenkins_script]# cat /data/jenkins_home/secrets/initialAdminPassword
118b816e6ee74f689fcb5756a6ca69eb
[root@localhost jenkins_script]#
四、检查jdk
[root@localhost jenkins_script]# docker exec -it jenkins /bin/bash
root@46c72f8cecb5:/# java -version
openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment Temurin-17.0.12+7 (build 17.0.12+7)
OpenJDK 64-Bit Server VM Temurin-17.0.12+7 (build 17.0.12+7, mixed mode, sharing)
root@46c72f8cecb5:/#
五、首次登录
首次登录,需要输入密码