如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为XWiki项目的自定义Docker镜像,基于Jenkins提供的https://hub.docker.com/r/jenkinsci/ssh-slave%E5%9F%BA%E7%A1%80%E9%95%9C%E5%83%8F%E6%9E%84%E5%BB%BA%E3%80%82%E4%B8%BB%E8%A6%81%E7%94%A8%E4%BA%8E%E4%B8%BAhttps://ci.xwiki.org%E7%94%9F%E6%88%90Jenkins%E4%BB%A3%E7%90%86%EF%BC%8C%E5%90%8C%E6%97%B6%E4%B9%9F%E5%8F%AF%E5%9C%A8%E4%BB%BB%E4%BD%95%E5%AE%89%E8%A3%85Docker%E7%9A%84%E6%9C%BA%E5%99%A8%E4%B8%8A%E6%9E%84%E5%BB%BAXWiki%E9%A1%B9%E7%9B%AE%E3%80%82
该镜像通过Dockerhub自动构建,可从https://hub.docker.com/r/xwiki/build%E8%8E%B7%E5%8F%96%E3%80%82
在基础镜像之上,添加了XWiki构建所需的以下工具:
ci.xwiki.org配置
代理机器准备:确保代理机器上存在以下文件/目录:
/home/hudsonagent/.m2/settings.xml/home/hudsonagent/.sshDocker云配置:
tcp:/<代理主机IP>:2376xwiki/build卷映射说明:/var/run/docker.sock:/var/run/docker.sock /home/hudsonagent/.m2/settings.xml:/root/.m2/settings.xml /home/hudsonagent/.ssh:/tmp/xwiki/.ssh:ro /home/hudsonagent/.xwiki:/root/.xwiki
/var/run/docker.sock:/var/run/docker.sock:支持Docker-out-of-Docker (DOOD),允许运行基于Docker的功能测试/home/hudsonagent/.m2/settings.xml:/root/.m2/settings.xml:提供Maven中央仓库外的 artifact 仓库配置及插件所需凭证/home/hudsonagent/.ssh:/tmp/xwiki/.ssh:ro:允许Jenkins流水线(如Clover)向网络中其他机器发布输出(如向maven.xwiki.org发布Clover报告)/home/hudsonagent/.xwiki:/root/.xwiki:存储XWiki Docker测试框架的缓存文件,避免频繁从DockerHub拉取镜像(受DockerHub拉取限制)/rootrootCI代理上手动执行
如需登录CI代理复现问题并手动执行构建:
bashdocker run -d --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/hudsonagent/.m2/settings.xml:/root/.m2/settings.xml -v /home/hudsonagent/.ssh:/tmp/xwiki/.ssh:ro xwiki/build
bashdocker exec -it <容器ID> bash -l
bash# 克隆仓库示例 git clone https://github.com/xwiki/xwiki-platform.git # Maven构建示例(进入对应目录) cd xwiki-platform/<具体路径>; mvn clean install # Docker测试示例 cd xwiki-platform/xwiki-platform-core/xwiki-platform-annotation/xwiki-platform-annotation-test/xwiki-platform-annotation-test-docker mvn clean integration-test -Dxwiki.checkstyle.skip=true -Dxwiki.surefire.captureconsole.skip=true -Dxwiki.revapi.skip=true -Dmaven.build.dir=target/mysql-5.7-5.1.45-tomcat-8.5-chrome -Dxwiki.test.ui.database=mysql -Dxwiki.test.ui.databaseTag=5.7 -Dxwiki.test.ui.jdbcVersion=5.1.45 -Dxwiki.test.ui.servletEngine=tomcat -Dxwiki.test.ui.servletEngineTag=8.5 -Dxwiki.test.ui.browser=chrome -Dxwiki.test.ui.verbose=true
bash# 启动VNC服务器 vncserver :1 -geometry 1280x960 -localhost -nolisten tcp # 设置显示环境变量 export DISPLAY=:1
bashdocker stop <容器ID>
可用于在本地机器复现CI问题或搭建简单的XWiki构建环境(仅需安装Docker)。
所有操作系统通用
交互模式
如需最小化构建设置并模拟CI代理环境:
bashdocker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock --entrypoint "/bin/bash" xwiki/build
进入容器后:
bashgit clone https://github.com/xwiki/xwiki-platform.git
注意:
Caused by: org.openqa.selenium.WebDriverException: invalid argument: can't kill an exited process的错误脚本模式
如需一次性执行完整构建(含功能测试):
bashdocker run --rm -v /var/run/docker.sock:/var/run/docker.sock --entrypoint "/bin/bash" xwiki/build -c " \ git clone https://github.com/xwiki/xwiki-platform.git && \ cd xwiki-platform && \ export MAVEN_OPTS='-Xmx2048m -Xms512m' && \ vncserver :1 -geometry 1280x960 -localhost -nolisten tcp && \ export DISPLAY=:1 && \ /home/hudsonagent/maven/bin/mvn --no-transfer-progress install -Plegacy,integration-tests,docker,snapshot \ "
Mac系统
以下步骤实现镜像运行并在Mac上显示GUI(需先按照tutorial安装必要工具):
bash# 设置显示转发 socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" open -a Xquartz IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') # 进入本地Maven模块目录 cd ...导航至包含pom.xml的本地目录... # 启动容器 docker run -d --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $HOME/.m2:/root/.m2:delegated \ -v $HOME/.git-credentials:/root/.git-credentials \ -v $HOME/.git-gitconfig:/root/.git-gitconfig \ -v $HOME/.gitconfig:/root/.gitconfig \ -v $HOME/.gitignore_global:/root/.gitignore_global \ -v $HOME/.ssh:/tmp/xwiki/.ssh:ro \ -v $HOME/.gnupg:/root/.gnupg \ -v `pwd`:/root/`basename \`pwd\``:delegated \ -e DISPLAY=$IP:0 -p 8080:8080 --privileged xwiki/build
参数说明:
delegated:优化卷挂载性能(解决Mac上osxfs性能问题)-v /var/run/docker.sock:/var/run/docker.sock:支持Docker-in-Docker-v $HOME/.m2:/root/.m2:delegated:复用本地Maven仓库,避免重复下载依赖.git*卷映射:将本地Git配置导入容器-v $HOME/.ssh:/tmp/xwiki/.ssh:ro:提供SSH密钥(容器启动脚本会将其复制到/root/.ssh并设置权限)-v $HOME/.gnupg:/root/.gnupg:提供GPG密钥(如执行Maven发布时需要)-v pwd:/root/basename `pwd`:delegated:挂载本地代码目录,避免重新克隆-e DISPLAY=$IP:0:将显示转发到Mac-p 8080:8080:允许通过http://localhost:8080访问容器内XWiki实例--privileged:特殊权限模式(部分场景可能需要)Linux系统
与Mac类似,但启动容器时需添加X11转发参数:
bashsudo docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $HOME/.m2:/root/.m2:delegated \ -v $HOME/.git-credentials:/root/.git-credentials \ -v $HOME/.git-gitconfig:/root/.git-gitconfig \ -v $HOME/.gitconfig:/root/.gitconfig \ -v $HOME/.gitignore_global:/root/.gitignore_global \ -v $HOME/.ssh:/tmp/xwiki/.ssh:ro \ -v $HOME/.gnupg:/root/.gnupg \ -v `pwd`:/root/`basename \`pwd\``:delegated \ -p 8080:8080 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $XAUTHORITY:/root/.Xauthority \ -e DISPLAY \ --net=host \ --entrypoint "/bin/bash" \ xwiki/build
X11转发必要参数(允许容器显示Firefox窗口):
-v /tmp/.X11-unix:/tmp/.X11-unix \ -v $XAUTHORITY:/root/.Xauthority \ -e DISPLAY \ --net=host \
示例
执行"Flavor Test - UI"构建步骤中的单个Selenium测试类(Firefox在容器内运行,通过X11转发显示):
bash# 进入测试目录 cd ~/xwiki-platform/xwiki-platform-distribution/xwiki-platform-distribution-flavor/xwiki-platform-distribution-flavor-test/xwiki-platform-distribution-flavor-test-ui # 运行测试 mvn clean install -Plegacy,integration-tests,jetty,hsqldb,firefox -Dpattern=UserClassFieldTest
运行"Flavor Test - Upgrade"测试:
bash# 进入升级测试目录 cd ~/xwiki-platform/xwiki-platform-distribution/xwiki-platform-distribution-flavor/xwiki-platform-distribution-flavor-test/xwiki-platform-distribution-flavor-test-upgrade/xwiki-platform-distribution-flavor-test-upgrade-1011 # 运行测试 mvn clean install -Plegacy,integration-tests,jetty,hsqldb,firefox
运行Docker测试(Firefox在Docker-in-Docker容器内运行,需通过VNC客户端连接容器内VNC服务器查看):
bash# 进入Docker测试目录 cd ~/xwiki-platform/xwiki-platform-core/xwiki-platform-flamingo/xwiki-platform-flamingo-theme/xwiki-platform-flamingo-theme-test/ # 运行测试 mvn clean install -Plegacy,integration-tests,snapshot,docker -Dxwiki.checkstyle.skip=true -Dxwiki.surefire.captureconsole.skip=true -Dxwiki.revapi.skip=true
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务