本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
!official JetBrains project
本镜像为JetBrains官方提供的TeamCity Server容器化部署方案,适用于生产环境部署和功能评估场景。TeamCity是一款功能强大的持续集成/持续交付(CI/CD)工具,支持自动化构建、测试和部署流程。
首先从Docker Hub拉取镜像:
docker pull jetbrains/teamcity-server
使用以下命令启动TeamCity Server容器,需确保数据和日志目录持久化:
docker run --name teamcity-server-instance \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p <主机端口>:8111 \ jetbrains/teamcity-server
参数说明:
<主机数据目录路径>:映射TeamCity数据目录(存储项目配置、构建结果等),首次启动需为空目录。必须挂载,否则容器关闭后数据丢失。<主机日志目录路径>:映射日志目录,用于问题排查。建议挂载,否则日志随容器销毁丢失。<主机端口>:主机映射端口,容器内默认端口为8111。默认情况下,容器以UID 1000用户运行。如需root权限(不推荐),可通过--user 0参数指定:
docker run --name teamcity-server-instance \ --user 0 \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p <主机端口>:8111 \ jetbrains/teamcity-server
安全提示:以root用户运行容器可能带来权限提升等安全风险,生产环境需进行充分安全评估。
当TeamCity部署在Nginx或Apache等反向代理后,需启用安全Cookie配置,通过环境变量实现:
docker run --name teamcity-server-instance \ -e TEAMCITY_HTTPS_PROXY_ENABLED=true \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p <主机端口>:8111 \ jetbrains/teamcity-server
该参数会使TeamCity使用server-https-proxy.xml配置文件,启用HTTPS相关选项。
TeamCity Server默认通过443端口提供HTTPS服务,但非root用户(如UID 1000)无法使用1024以下特权端口。解决方法如下:
将容器内非特权端口8443映射到主机443端口:
docker run --name teamcity-server-instance \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p 443:8443 \ # 主机443端口映射到容器8443端口 jetbrains/teamcity-server
以root用户启动容器,直接使用443端口:
docker run --name teamcity-server-instance \ --user 0 \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p 443:443 \ jetbrains/teamcity-server
TeamCity基于Tomcat服务器运行,可通过挂载自定义配置目录覆盖默认配置:
docker run --name teamcity-server-instance \ -v /自定义/tomcat/conf目录:/opt/teamcity/conf \ # 挂载自定义Tomcat配置 -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p <主机端口>:8111 \ jetbrains/teamcity-server
如需获取默认Tomcat配置样本,可通过
docker cp命令从运行中的容器复制:
docker cp teamcity-server-instance:/opt/teamcity/conf /本地目录
Windows容器需指定数据目录、日志目录和临时目录的挂载路径:
docker run --name teamcity-server-instance ` -v <主机数据目录路径>:C:/ProgramData/JetBrains/TeamCity ` -v <主机日志目录路径>:C:/TeamCity/logs ` -v <主机临时目录路径>:C:/TeamCity/temp ` -p <主机端口>:8111 ` jetbrains/teamcity-server
推荐配置:为容器分配足够资源(内存、CPU)并调整JVM参数:
docker run --memory="6g" --cpus=4 ` -e TEAMCITY_SERVER_MEM_OPTS="-Xmx3g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=640m" ` --name teamcity-server-instance ` -v <主机数据目录路径>:C:/ProgramData/JetBrains/TeamCity ` -v <主机日志目录路径>:C:/TeamCity/logs ` -v <主机临时目录路径>:C:/TeamCity/temp ` -p <主机端口>:8111 ` jetbrains/teamcity-server
注意:Windows容器已知问题可参考TeamCity官方文档。
TeamCity Server需配合构建代理执行构建任务,推荐使用官方代理镜像:
如需一键启动Server和Agent,可参考官方Docker Compose示例。
| 环境变量 | 说明 | 示例值 |
|---|---|---|
TEAMCITY_HTTPS_PROXY_ENABLED | 启用HTTPS反向代理模式,使用server-https-proxy.xml配置文件 | true |
TEAMCITY_SERVER_MEM_OPTS | 自定义JVM内存参数 | -Xmx3g -XX:MaxPermSize=270m |
TEAMCITY_CONTEXT | 修改Tomcat中TeamCity应用的上下文路径(默认ROOT,即[***]) | /teamcity(访问路径变为[***]) |
通过-e参数传递环境变量,例如调整JVM内存:
docker run --name teamcity-server-instance \ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=640m" \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p <主机端口>:8111 \ jetbrains/teamcity-server
停止当前容器后,通过以下命令运行maintainDB脚本:
docker run -it --name teamcity-server-instance \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ jetbrains/teamcity-server \ "/opt/teamcity/bin/maintainDB.sh" "backup"
注意:需保持数据目录和日志目录挂载路径与主服务启动命令一致。
docker stop teamcity-server-instancedocker pull jetbrains/teamcity-server详细升级步骤请参考官方升级指南。
本镜像遵循TeamCity许可证。免费版限制:最多100个构建配置和3个构建代理。商业使用需购买相应许可证。
免费版仅支持 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