
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!Docker Stars - !Docker Pulls
本仓库提供的Docker镜像用于在Docker容器中构建所有eXo Platform组件,适用于开发和持续集成场景。镜像包含构建eXo Platform组件所需的Dockerfile、测试用例和环境配置,旨在提供标准化、可重复的构建环境,确保开发和CI流程的一致性。
以下是eXo CI镜像的详细信息,包含JDK版本、依赖工具及测试配置:
| 镜像名称 | JDK版本 | Python版本 | GCC版本 | 构建工具 | 测试配置文件 |
|---|---|---|---|---|---|
| exoplatform/ci:base | n/a | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:base-alpine | n/a | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk6 | 1.6.0_45 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk7 | 1.7.0_80 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk8 | 1.8.0_181 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk11 | 11.0.19 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk17 | 17.0.7 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk17-alpine | 17.0.7 | 2.7 & 3 | 4.8 | n/a | goss.yaml |
| exoplatform/ci:jdk8-gradle2 | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 2.14 | goss.yaml |
| exoplatform/ci:jdk8-gradle2-android | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 2.14 / Android 23/24 | goss.yaml |
| exoplatform/ci:jdk8-gradle4 | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 4.1 | goss.yaml |
| exoplatform/ci:jdk8-gradle4-android | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 4.1 / Android 23/24/25/26/27 | goss.yaml |
| exoplatform/ci:jdk8-gradle6 | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 6.1 | goss.yaml |
| exoplatform/ci:jdk8-gradle6-android | 1.8.0_181 | 2.7 & 3 | 4.8 | Gradle 6.1 / Android 23/24/25/26/27 | goss.yaml |
| exoplatform/ci:jdk6-maven30 | 1.6.0_45 | 2.7 & 3 | 4.8 | Maven 3.0.5 | goss.yaml |
| exoplatform/ci:jdk6-maven32 | 1.6.0_45 | 2.7 & 3 | 4.8 | Maven 3.2.5 | goss.yaml |
| exoplatform/ci:jdk7-maven30 | 1.7.0_80 | 2.7 & 3 | 4.8 | Maven 3.0.5 | goss.yaml |
| exoplatform/ci:jdk7-maven32 | 1.7.0_80 | 2.7 & 3 | 4.8 | Maven 3.2.5 | goss.yaml |
| exoplatform/ci:jdk8-maven30 | 1.8.0_181 | 2.7 & 3 | 4.8 | Maven 3.0.5 | goss.yaml |
| exoplatform/ci:jdk8-maven32 | 1.8.0_181 | 2.7 & 3 | 4.8 | Maven 3.2.5 | goss.yaml |
| exoplatform/ci:jdk8-maven33 | 1.8.0_181 | 2.7 & 3 | 4.8 | Maven 3.3.9 | goss.yaml |
| exoplatform/ci:jdk8-maven35 | 1.8.0_181 | 2.7 & 3 | 4.8 | Maven 3.5.4 | goss.yaml |
| exoplatform/ci:jdk11-maven32 | 11.0.19 | 2.7 & 3 | 4.8 | Maven 3.2.5 | goss.yaml |
| exoplatform/ci:jdk11-maven33 | 11.0.19 | 2.7 & 3 | 4.8 | Maven 3.3.9 | goss.yaml |
| exoplatform/ci:jdk11-maven35 | 11.0.19 | 2.7 & 3 | 4.8 | Maven 3.5.4 | goss.yaml |
| exoplatform/ci:jdk11-maven36 | 11.0.19 | 2.7 & 3 | 4.8 | Maven 3.6.3 | goss.yaml |
| exoplatform/ci:jdk11-maven38 | 11.0.19 | 2.7 & 3 | 4.8 | Maven 3.8.8 | goss.yaml |
| exoplatform/ci:jdk11-mavend08 | 11.0.19 | 2.7 & 3 | 4.8 | Mavend 0.8.2 | goss.yaml |
| exoplatform/ci:jdk17-maven36 | 17.0.7 | 2.7 & 3 | 4.8 | Maven 3.6.3 | goss.yaml |
| exoplatform/ci:jdk17-maven38 | 17.0.7 | 2.7 & 3 | 4.8 | Maven 3.8.8 | goss.yaml |
| exoplatform/ci:jdk17-mavend08 | 17.0.7 | 2.7 & 3 | 4.8 | Mavend 0.8.2 | goss.yaml |
| exoplatform/ci:jdk17-mavend09 | 17.0.7 | 2.7 & 3 | 4.8 | Mavend 0.9.0 | goss.yaml |
| exoplatform/ci:jdk17-maven39 | 17.0.7 | 2.7 & 3 | 4.8 | Maven 3.9.2 | goss.yaml |
| exoplatform/ci:jdk17-maven39-alpine | 17.0.7 | 2.7 & 3 | 4.8 | Maven 3.9.2 | goss.yaml |
前提条件
执行测试需先安装https://github.com/aelsabbahy/goss/tree/master/extras/dgoss%EF%BC%88Goss%E7%9A%84Docker%E5%B0%81%E8%A3%85%E5%B7%A5%E5%85%B7%EF%BC%89%E3%80%82
批量测试所有镜像
通过项目根目录的脚本批量构建并测试所有镜像:
bash$ ./test_all_images.sh
测试特定镜像
进入目标镜像的测试目录,执行测试脚本:
bash$ cd maven/jdk7-maven32/tests $ ./test_image.sh INFO: 启动Docker容器 INFO: 容器ID: 59897f6f INFO: 等待0.2秒 INFO: 运行测试 标题: 验证eXo全局设置文件是否存在 文件: /usr/share/maven/conf/settings.xml: 存在: 符合预期: [true] 标题: 验证Maven仓库目录是否存在 文件: /home/ciagent/.m2/repository: 存在: 符合预期: [true] 标题: 验证eXo用户设置文件是否不存在 文件: /home/ciagent/.m2/settings.xml: 存在: 符合预期: [false] 标题: 检查git是否安装 包: git: 已安装: 符合预期: [true] 命令: mvn --version: 退出状态: 符合预期: [0] 命令: mvn --version: 标准输出: 符合预期: [3.2.5 1.7.0 默认语言环境: en_US, 平台编码: UTF-8] 总耗时: 0.650s 测试总数: 6, 失败: 0, 跳过: 0 INFO: 删除容器 real 0m2.929s user 0m0.064s sys 0m0.288s
基础示例:JDK7 - Maven 3.0
通过docker run命令挂载项目目录、Maven仓库和设置文件,使用jdk7-maven30镜像构建项目:
bash$ cd my-project $ docker run --name=my-project-build -it \ -v $(pwd):/srv/ciagent/workspace \ # 挂载当前项目目录到容器工作区 -v ~/.m2/repository:/home/ciagent/.m2/repository \ # 共享本地Maven仓库,加速构建 -v ~/.m2/settings.xml:/home/ciagent/.m2/settings.xml \ # 挂载Maven设置文件 exoplatform/ci:jdk7-maven30 clean package # 执行Maven构建命令
高级示例:JDK8 - Maven 3.2与Release Profile
如需使用GPG签名发布版本,挂载GPG密钥文件并指定Release Profile:
bash$ cd my-project $ docker run --name=my-project-build -it \ -v $(pwd):/srv/ciagent/workspace \ -v ~/.m2/repository:/home/ciagent/.m2/repository \ -v ~/.m2/settings.xml:/home/ciagent/.m2/settings.xml \ -v ~/.gnupg/pubring.gpg:/home/ciagent/.gnupg/pubring.gpg:ro \ # 只读挂载公钥环 -v ~/.gnupg/secring.gpg:/home/ciagent/.gnupg/secring.gpg:ro \ # 只读挂载私钥环 -v ~/.gnupg/gpg.conf:/home/ciagent/.gnupg/gpg.conf:ro \ # 挂载GPG配置 exoplatform/ci:jdk8-maven32 install -Prelease # 使用Release Profile执行安装
使用puppet镜像验证Puppet模块配置:
bash$ cd my-project # 进入包含Puppet代码的目录 $ docker run --name puppet-validation -it \ -v ${PWD}:/srv/ciagent/workspace \ # 挂载项目目录到容器工作区 exoplatform/ci:puppet # 执行Puppet验证
如需强制更新Puppet模块(通过r10k),添加-u参数:
bash
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务