本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
XWiki Build 镜像为XWiki项目定制,主要用于为 [***] 生成Jenkins代理,同时也支持在任何安装Docker的机器上构建XWiki项目。该镜像基于Jenkins官方提供的 jenkins/ssh-slave 基础镜像构建,补充了XWiki构建所需的特定工具链。
在 jenkins/ssh-slave 基础镜像之上,该镜像添加了以下XWiki构建必需的工具:
该镜像通过 Docker Hub 自动构建。
前置条件: 在代理机器上需存在以下文件/目录(详见下方说明):
/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外的Docker(DOOD),支持功能测试中使用Docker容器/home/hudsonagent/.m2/settings.xml:/root/.m2/settings.xml:提供Maven仓库配置(用于获取非中央仓库 artifacts)及插件所需凭据/home/hudsonagent/.ssh:/tmp/xwiki/.ssh:ro:支持Jenkins流水线(如Clover)向网络中其他机器发布输出(如向 maven.xwiki.org 发布Clover报告),ro 表示只读/home/hudsonagent/.xwiki:/root/.xwiki:存储XWiki Docker测试框架的缓存文件,避免频繁从DockerHub拉取镜像(DockerHub有每6小时100-200次的拉取限制)/rootroot若需登录CI代理节点复现问题并手动执行构建,步骤如下:
docker 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
docker exec -it <容器ID> bash -l
git clone [***]
cd xwiki-platform/<具体路径>; mvn clean install
~/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
vncserver :1 -geometry 1280x960 -localhost -nolisten tcp export DISPLAY=:1
docker stop <容器ID>
本地使用适用于复现CI问题或搭建本地XWiki构建环境,仅需安装Docker。
适用于最小化构建配置,模拟CI代理环境:
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock --entrypoint "/bin/bash" xwiki/build
进入容器后操作:
git clone [***]
注意:
Caused by: org.openqa.selenium.WebDriverException: invalid argument: can't kill an exited process)一次性执行完整构建流程(示例:构建整个XWiki Platform,含功能测试):
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --entrypoint "/bin/bash" xwiki/build -c " \ git clone [***] && \ 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 \ "
以下步骤配置GUI显示(需先参考 教程 安装必要工具):
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
open -a Xquartz
IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
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:优化macOS下卷挂载性能(参考 Docker for Mac文档)/var/run/docker.sock:/var/run/docker.sock:支持Docker-in-Docker$HOME/.m2:/root/.m2:delegated:复用本地Maven仓库,避免重复下载依赖.git* 挂载:映射本地Git配置至容器$HOME/.ssh:/tmp/xwiki/.ssh:ro:映射SSH密钥(容器启动脚本会自动复制至 /root/.ssh 并设置权限)$HOME/.gnupg:/root/.gnupg:映射GPG密钥(用于Maven发布等场景)-e DISPLAY=$IP:0:转发显示至本地XQuartz-p 8080:8080:映射端口,允许本地访问容器内XWiki实例--privileged:特权模式(部分场景可能需要)与macOS类似,但需添加X11转发参数以支持GUI显示:
sudo 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 \
执行单个Selenium测试类(如"Flavor Test - UI"步骤,Firefox窗口通过X11转发显示):
# 进入测试模块目录 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"测试:
# 进入升级测试模块目录 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服务器查看):
# 进入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
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429