exoplatform/ci!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 |
执行测试需先安装dgoss(Goss的Docker封装工具)。
通过项目根目录的脚本批量构建并测试所有镜像:
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
通过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构建命令
如需使用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






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务