
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
此镜像已被弃用,建议使用由https://jenkins.io/提供和维护的https://hub.docker.com/r/jenkins/jenkins镜像,该镜像作为项目发布流程的一部分。此处的镜像在LTS 2.60.x之后将不再接收更新。请相应调整您的使用方式。
Dockerfile链接(amd64/jenkins构建任务)
获取帮助的途径:
https://forums.docker.com/、https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/或https://stackoverflow.com/search?tab=newest&q=docker
提交问题的位置:
https://github.com/cloudbees/jenkins-ci.org-docker/issues
维护者:
https://github.com/cloudbees/jenkins-ci.org-docker
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/jenkins/
已发布镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/jenkins(https://github.com/docker-library/repo-info/commits/master/repos/jenkins)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Fjenkins
https://github.com/docker-library/official-images/blob/master/library/jenkins(https://github.com/docker-library/official-images/commits/master/library/jenkins)
此描述的来源:
https://github.com/docker-library/docs/tree/master/jenkins(https://github.com/docker-library/docs/commits/master/jenkins)
支持的Docker版本:
https://github.com/docker/docker-ce/releases/latest(尽最大努力支持低至1.6版本)
Jenkins持续集成和交付服务器。
这是一个功能完整的Jenkins服务器,基于长期支持(LTS)版本http://jenkins.io/。
如需每周发布版,请查看https://hub.docker.com/r/jenkinsci/jenkins/
consoledocker run -p 8080:8080 -p 50000:50000 docker.xuanyuan.run/amd64/jenkins
这会将工作区存储在/var/jenkins_home中。所有Jenkins数据(包括插件和配置)都存储在此目录。建议将其设为持久卷(推荐做法):
consoledocker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home docker.xuanyuan.run/amd64/jenkins
这会将Jenkins数据存储在主机的/your/home目录。确保容器中的Jenkins用户(Jenkins用户,UID 1000)可访问/your/home,或使用docker run的-u some_other_user参数指定其他用户。
您也可以使用卷容器:
consoledocker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home docker.xuanyuan.run/amd64/jenkins
此时myjenkins容器拥有该卷(请阅读Docker卷处理相关文档以了解更多信息)。
如果您通过绑定挂载卷,只需随时备份该目录(即jenkins_home)即可。
强烈建议这样做。将jenkins_home目录视为数据库——在Docker中,通常会将数据库放在卷上。
如果卷在容器内,可使用docker cp $ID:/var/jenkins_home命令提取数据,或通过其他方式查找卷数据位置。注意,某些操作系统上的符号链接可能会被转换为副本(这可能会使Jenkins的lastStableBuild等链接出错)
更多信息请查看Docker文档的https://docs.docker.com/engine/tutorials/dockervolumes/部分。
您可以使用Groovy脚本指定和设置Jenkins主实例的执行器数量。默认设置为2个执行器,但您可以扩展镜像并将其更改为所需数量:
executors.groovy
groovyimport jenkins.model.* Jenkins.instance.setNumExecutors(5)
以及Dockerfile
dockerfileFROM docker.xuanyuan.run/amd64/jenkins COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy
您可以在主节点上运行构建(开箱即用),但如果要附加构建从节点服务器:确保映射端口-p 50000:50000——连接从节点代理时将使用此端口。
您可能需要自定义运行Jenkins的JVM,通常是为了传递系统属性或调整堆内存设置。使用JAVA_OPTS环境变量实现此目的:
consoledocker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com docker.xuanyuan.run/amd64/jenkins
Jenkins日志可通过属性文件和java.util.logging.config.file Java属性进行配置。例如:
consolemkdir data cat > data/log.properties <<EOF handlers=java.util.logging.ConsoleHandler jenkins.level=FINEST java.util.logging.ConsoleHandler.level=FINEST EOF docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties" -v `pwd`/data:/var/jenkins_home docker.xuanyuan.run/amd64/jenkins
传递给运行Jenkins镜像的docker命令的参数会被传递给Jenkins启动器,因此您可以运行例如:
console$ docker run amd64/jenkins --version
这将输出Jenkins版本,就像运行Jenkins可执行war包一样。
您也可以将Jenkins参数定义为JENKINS_OPTS。这在基于官方镜像定义派生Jenkins镜像并进行一些自定义设置时非常有用。以下示例Dockerfile使用此选项强制使用HTTPS,并包含镜像中的证书:
dockerfileFROM docker.xuanyuan.run/amd64/jenkins:1.565.3 COPY https.pem /var/lib/jenkins/cert COPY https.key /var/lib/jenkins/pk ENV JENKINS_OPTS --httpPort=-1 --httpsPort=8083 --httpsCertificate=/var/lib/jenkins/cert --httpsPrivateKey=/var/lib/jenkins/pk EXPOSE 8083
您还可以通过在示例Dockerfile中定义JENKINS_SLAVE_AGENT_PORT来更改Jenkins的默认从节点代理端口。
dockerfileFROM docker.xuanyuan.run/amd64/jenkins:1.565.3 ENV JENKINS_SLAVE_AGENT_PORT 50001
或作为docker参数:
console$ docker run --name myjenkins -p 8080:8080 -p 50001:50001 --env JENKINS_SLAVE_AGENT_PORT=50001 amd64/jenkins
您可以以root用户运行容器并通过apt-get安装工具,或通过Jenkins工具安装器作为构建步骤的一部分安装,也可以创建自己的Dockerfile进行自定义,例如:
dockerfileFROM docker.xuanyuan.run/amd64/jenkins # 如果要通过apt安装 USER root RUN apt-get update && apt-get install -y ruby make more-thing-here USER jenkins # 切换回常规Jenkins用户——良好实践
在这样的派生镜像中,您可以使用钩子脚本或其他插件自定义Jenkins实例。为此,使用/usr/share/jenkins/ref作为定义目标安装所需的默认JENKINS_HOME内容的位置:
dockerfileFROM docker.xuanyuan.run/amd64/jenkins COPY plugins.txt /usr/share/jenkins/ref/ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy RUN /usr/local/bin/plugins.sh /usr/share/jenkins/ref/plugins.txt
当Jenkins容器启动时,它会检查JENKINS_HOME是否有此引用内容,并在需要时将其复制到那里。它不会覆盖此类文件,因此如果您从UI升级了某些插件,下次启动时不会被还原。
另请参见https://issues.jenkins-ci.org/browse/JENKINS-24986
为方便起见,您还可以使用纯文本文件定义要安装的插件(使用核心支持的插件格式)。所有插件都需要列出,因为没有传递依赖解析。
pluginID:version credentials:1.18 maven-plugin:2.7.1 ...
在派生Dockerfile中只需调用实用工具plugin.sh脚本:
dockerfileFROM docker.xuanyuan.run/amd64/jenkins COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
所有所需数据都在/var/jenkins_home目录中——因此升级方式取决于您如何管理该目录。通常,您可以将其复制出来,然后执行docker pull获取最新镜像,之后使用-v指向该数据目录(/var/jenkins_home)启动容器,所有内容将保持原样。
一如既往,请确保您了解如何操作docker,尤其是卷处理!
amd64/jenkins镜像有多种版本,每种版本设计用于特定用例。
amd64/jenkins:<version>这是默认镜像。如果不确定您的需求,可能需要使用此版本。它设计为既可作为临时容器使用(挂载源代码并启动容器以启动应用),也可作为构建其他镜像的基础。
amd64/jenkins:alpine此镜像基于流行的http://alpinelinux.org,可在https://hub.docker.com/_/alpine中获取。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常会生成更精简的镜像。
当需要最小化最终镜像大小时,强烈推荐此变体。需要注意的主要问题是它使用http://www.musl-libc.org而非http://www.etalabs.net/compare_libcs.html,因此某些软件可能会因libc需求深度而遇到问题。然而,大多数软件对此没有问题,因此此变体通常是非常安全的选择。有关可能出现的问题以及使用基于Alpine的镜像的优缺点比较,请参见此Hacker News评论线程。
为最小化镜像大小,基于Alpine的镜像中通常不包含其他相关工具(如git或bash)。以此镜像为基础,在您自己的Dockerfile中添加所需内容(如果不熟悉如何安装软件包,请参见https://hub.docker.com/_/alpine/中的示例)。
查看此镜像中包含的软件的https://jenkins.io/license/。
与所有Docker镜像一样,这些镜像可能还包含其他受其他许可证约束的软件(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/jenkins中。
对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 amd64/jenkins 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: