wangtianqi 7b8bd55554 feat: 完善Jenkins流水线配置
主要更新:
- 使用SSH私钥认证替代用户名密码认证
- 配置deploy-server-ssh-key凭据ID
- 修复Jenkinsfile格式和缩进问题
- 添加SSH配置指南和企业级部署文档

 技术改进:
- 使用sshagent进行安全的SSH连接
- 移除sshpass依赖,提升安全性
- 统一使用root@116.62.163.84进行部署
- 优化Docker镜像传输和部署流程

 新增文档:
- SSH_CONFIG_GUIDE.md - SSH私钥配置指南
- ENTERPRISE_JENKINS_GUIDE.md - 企业级Jenkins部署
- jenkins-docker/ - Jenkins Docker化部署方案
2025-06-23 21:14:09 +08:00

103 lines
3.0 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基于官方Jenkins镜像
FROM jenkins/jenkins:2.426.1-lts
# 切换到root用户安装软件
USER root
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 更新包管理器并安装必要工具
RUN apt-get update && apt-get install -y \
openjdk-17-jdk \
maven \
curl \
wget \
git \
sshpass \
vim \
unzip \
&& rm -rf /var/lib/apt/lists/*
# 设置JDK环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV PATH=$JAVA_HOME/bin:$PATH
# 配置Maven镜像加速使用阿里云镜像
RUN mkdir -p /root/.m2 && \
echo '<?xml version="1.0" encoding="UTF-8"?>' > /root/.m2/settings.xml && \
echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"' >> /root/.m2/settings.xml && \
echo ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' >> /root/.m2/settings.xml && \
echo ' xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">' >> /root/.m2/settings.xml && \
echo ' <mirrors>' >> /root/.m2/settings.xml && \
echo ' <mirror>' >> /root/.m2/settings.xml && \
echo ' <id>aliyunmaven</id>' >> /root/.m2/settings.xml && \
echo ' <mirrorOf>*</mirrorOf>' >> /root/.m2/settings.xml && \
echo ' <name>阿里云公共仓库</name>' >> /root/.m2/settings.xml && \
echo ' <url>https://maven.aliyun.com/repository/public</url>' >> /root/.m2/settings.xml && \
echo ' </mirror>' >> /root/.m2/settings.xml && \
echo ' </mirrors>' >> /root/.m2/settings.xml && \
echo '</settings>' >> /root/.m2/settings.xml
# 验证Java和Maven安装
RUN java -version && mvn -version
# 安装Docker CLI用于Docker in Docker
RUN curl -fsSL https://get.docker.com -o get-docker.sh && \
sh get-docker.sh && \
rm get-docker.sh
# 将jenkins用户添加到docker组
RUN usermod -aG docker jenkins
# 创建jenkins用户的Maven配置
RUN mkdir -p /var/jenkins_home/.m2 && \
cp /root/.m2/settings.xml /var/jenkins_home/.m2/ && \
chown -R jenkins:jenkins /var/jenkins_home/.m2
# 切换回jenkins用户
USER jenkins
# 预安装核心插件企业级CI/CD必备
RUN jenkins-plugin-cli --plugins \
maven-integration-plugin \
jacoco \
sonar \
docker-workflow \
docker-plugin \
ssh-agent \
credentials-binding \
git \
github \
workflow-aggregator \
pipeline-stage-view \
blueocean \
build-timeout \
timestamper \
ws-cleanup \
ant \
gradle \
nodejs \
publish-over-ssh \
email-ext \
slack \
build-monitor-plugin \
role-strategy \
ldap \
matrix-auth \
configuration-as-code \
job-dsl
# 复制预配置文件
COPY jenkins-config/ /var/jenkins_home/
# 设置Jenkins启动选项
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false -Xmx2048m -Duser.timezone=Asia/Shanghai"
ENV JENKINS_OPTS="--httpPort=8080"
# 设置Jenkins配置文件权限
USER root
RUN chown -R jenkins:jenkins /var/jenkins_home/
USER jenkins