本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
P4 Code Review Docker容器是Perforce Software提供的官方容器,用于在测试或生产环境中运行P4 Code Review(原Helix Swarm)。该容器为用户提供了便捷的部署方式,可快速搭建代码审查环境并与Helix Core Server集成。
P4 Code Review镜像可在Docker Hub获取,镜像名称为perforce/helix-swarm:
[***]
以下标签的镜像可用:
版本化标签会在该版本有补丁发布时更新。latest标签始终指向最新版本的最新补丁。
首先,创建一个.env文件,包含以下内容:
P4D_PORT=ssl:myperforce:1666 P4D_SUPER=super P4D_SUPER_PASSWD=HelixDockerBay94 SWARM_USER=swarm SWARM_PASSWD=HelixDockerBay94 SWARM_HOST=mymachine SWARM_REDIS=helix-redis SWARM_REDIS_PORT=7379 # 如果设置为'y',即使扩展已存在也会重新安装,覆盖现有配置 SWARM_FORCE_EXT=y
docker network create helix
docker run -d --name helix-redis --network helix --network-alias helix-redis \ redis redis-server --protected-mode no --port 7379
docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ --env-file .env -p 80:80 perforce/helix-swarm
以下环境变量可用于配置P4 Code Review Docker镜像。注意,如果已存在config.php文件,大多数这些选项将被忽略。
| 配置项 | 默认值 | 描述 |
|---|---|---|
| P4D_SUPER | super | 超级用户名 |
| P4D_SUPER_PASSWD | 无默认值 | 超级用户密码 |
| P4D_PORT | ssl:perforce:1666 | P4D服务器端口 |
| SWARM_USER | swarm | P4 Code Review用户名 |
| SWARM_PASSWD | 无默认值 | P4 Code Review用户密码 |
| SWARM_MAILHOST | localhost | 邮件服务器地址 |
| SWARM_HOST | helix-swarm | P4 Code Review服务器主机名 |
| SWARM_FORCE_EXT | n | 设置为'y'以覆盖扩展 |
| SWARM_REDIS | helix-redis | Redis服务器主机名 |
| SWARM_REDIS_PORT | 7379 | Redis服务器端口 |
| SWARM_REDIS_PASSWD | Redis服务器密码 | |
| SWARM_REDIS_NAMESPACE | Redis命名空间 |
完整的生产环境要求P4 Code Review和Redis数据能够在容器生命周期之外持久化。这可以通过启动Docker容器时使用绑定挂载来实现。
# 创建存储目录 mkdir -p storage/redis-data mkdir -p storage/swarm-data # 启动Redis容器(带数据持久化) docker run -d --name helix-redis --network helix --network-alias helix-redis \ -v $PWD/storage/redis-data:/data redis \ redis-server --protected-mode no --port 7379 --appendonly yes # 启动P4 Code Review容器(带数据持久化) docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ -p 80:80 -v $PWD/storage/swarm-data:/opt/perforce/swarm/data \ --env-file .env perforce/helix-swarm
此配置将P4 Code Review配置和Redis缓存数据保留在容器外部。P4 Code Review日志文件、工作队列、令牌和工作区也将被保留。
当容器启动时,如果/opt/perforce/swarm/data/config.php文件已存在,则会跳过大部分配置步骤。这允许容器重启而不必每次都重新配置系统。
这使得.env文件不再需要。删除Docker容器后,可以使用以下命令重新创建并重启:
docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ -p 80:80 -v $PWD/storage/swarm-data:/opt/perforce/swarm/data \ perforce/helix-swarm
启动时,如果/opt/perforce/swarm/data/docker目录不存在,将创建该目录。Apache站点配置和几个不在数据目录中的P4 Code Review配置文件将复制到这里,然后从它们通常的位置链接到这里。这允许用户在容器外部修改这些文件,任何更改将在重启之间保留。
/etc/apache2/sites-available -> docker/sites-available [目录]/opt/perforce/etc/swarm-cron-hosts.conf -> docker/swarm-cron-hosts.conf/opt/perforce/swarm/public/custom -> docker/custom [目录]如果要将现有P4 Code Review服务器替换为Docker,可以重用现有的config.php配置文件。还可以配置P4 Code Review使用不同的Redis实例。
./storage目录data目录内容复制到./storage/swarm-dataconfig.php中的网络连接配置正确docker network create helix mkdir -p storage/redis-data docker run -d --name helix-redis --network helix --network-alias helix-redis \ -v $PWD/storage/redis-data:/data redis \ redis-server --protected-mode no --port 7379 --appendonly yes mkdir -p storage/swarm-data # 将旧数据复制到storage/swarm-data目录 # cp -R /path/to/old/data/* storage/swarm-data/ docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ -p 80:80 -v $PWD/storage/swarm-data:/opt/perforce/swarm/data \ perforce/helix-swarm
从同一台机器上的P4 Code Review安装迁移到Docker安装时,需要注意以下可能的问题:
默认情况下,Apache启用了三个模块:rewrite、ssl和remoteip。ssl模块仅在需要从容器内运行HTTPS时才需要。如果使用SSL,还需要放置SSL密钥和证书文件的位置。有以下选项:
如果Docker容器由另一个Web服务器作为前端,则可能会遇到Helix票据问题,除非它们是主机未锁定的。通常Apache会将客户端的IP地址转发给P4 Code Review。
如果P4 Code Review位于Web代理(如运行SSL的第二个Apache服务器)后面,则客户端的IP地址会丢失。在这种情况下,必须使用主机未锁定的票据(通过p4 login -ap获取)。
或者,可以使用remoteip模块允许容器Apache信任代理,从而启用客户端IP的转发。在perforce-swarm-site.conf中添加以下行:
RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 172.19.0.1/24
RemoteIPInternalProxy应该是容器看到的主机IP地址。
可以使用docker-compose.yml简化部署:
version: '3' networks: helix: driver: bridge services: redis: image: redis container_name: helix-redis networks: - helix command: redis-server --protected-mode no --port 7379 volumes: - ./storage/redis-data:/data restart: unless-stopped swarm: image: perforce/helix-swarm container_name: helix-swarm networks: - helix ports: - "80:80" volumes: - ./storage/swarm-data:/opt/perforce/swarm/data environment: - P4D_PORT=ssl:myperforce:1666 - P4D_SUPER=super - P4D_SUPER_PASSWD=HelixDockerBay94 - SWARM_USER=swarm - SWARM_PASSWD=HelixDockerBay94 - SWARM_HOST=mymachine - SWARM_REDIS=helix-redis - SWARM_REDIS_PORT=7379 - SWARM_FORCE_EXT=y depends_on: - redis restart: unless-stopped
使用以下命令启动:
docker-compose up -d
有关升级P4 Code Review Docker容器的详细说明,请参阅官方文档: [***]
有一个Makefile用于抽象可以运行的一些命令。如果在具有适当构建工具的Linux系统上,这可能会很有用。
Makefile设置了一些默认参数,可以通过build.mk文件覆盖:
REPO := perforce IMAGE := helix-swarm-development TAG := DEV-BUILD ARGS := NAME := helix-swarm
@copyright 2025 Perforce Software. 保留所有权利。# P4 Code Review (原Helix Swarm) Docker容器
P4 Code Review Docker容器是Perforce Software提供的官方容器,用于在测试或生产环境中运行P4 Code Review(原Helix Swarm)。该容器为用户提供了便捷的部署方式,可快速搭建代码审查环境并与Helix Core Server集成。
P4 Code Review镜像可在Docker Hub获取:
[***]
以下标签的镜像可用:
版本化标签会在该版本有补丁发布时更新。latest标签始终指向最新版本的最新补丁。
首先,创建.env文件,包含以下内容:
P4D_PORT=ssl:myperforce:1666 P4D_SUPER=super P4D_SUPER_PASSWD=HelixDockerBay94 SWARM_USER=swarm SWARM_PASSWD=HelixDockerBay94 SWARM_HOST=mymachine SWARM_REDIS=helix-redis SWARM_REDIS_PORT=7379 # 如果设置为'y',即使扩展已存在也会重新安装,覆盖现有配置 SWARM_FORCE_EXT=y
P4D_PORT必须设置为P4D实例的端口,且必须能从docker镜像访问。P4D_SUPER和P4D_SUPER_PASSWD变量必须设置为P4D上的超级用户信息。
SWARM_USER如果不存在将被创建,SWARM_PASSWD必须正确设置,需要是管理员或超级用户。
SWARM_HOST必须是docker容器使用的主机名,且必须能从P4D服务器访问。重要:SWARM_HOST用于配置扩展,因此P4D必须能够使用此处给出的主机名回调。
SWARM_REDIS和SWARM_REDIS_PORT用于配置Swarm连接Redis服务器作为缓存。
docker network create helix
docker run -d --name helix-redis --network helix --network-alias helix-redis \ redis redis-server --protected-mode no --port 7379
docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ --env-file .env -p 80:80 perforce/helix-swarm
完整的生产环境要求P4 Code Review和Redis数据能够在容器生命周期之外持久化。这可以通过启动Docker容器时使用绑定挂载来实现。
# 创建存储目录 mkdir -p storage/redis-data mkdir -p storage/swarm-data # 启动Redis容器(带数据持久化) docker run -d --name helix-redis --network helix --network-alias helix-redis \ -v $PWD/storage/redis-data:/data redis \ redis-server --protected-mode no --port 7379 --appendonly yes # 启动P4 Code Review容器(带数据持久化) docker run -d --name helix-swarm --network helix --network-alias helix-swarm \ -p 80:80 -v $PWD/storage/swarm-data:/opt/perforce/swarm/data \ --env-file .env perforce/helix-swarm
此配置将P4 Code Review配置和Redis缓存数据保留在容器外部。P4 Code Review日志文件、工作队列、令牌和工作区也将被保留。
当容器启动时,如果/opt/perforce/swarm/data/config.php文件已存在,则
免费版仅支持 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