!official JetBrains project
本镜像为JetBrains***提供的TeamCity Server容器化部署方案,适用于生产环境部署和功能评估场景。TeamCity是一款功能强大的持续集成/持续交付(CI/CD)工具,支持自动化构建、测试和部署流程。
首先从Docker Hub拉取镜像:
bashdocker pull jetbrains/teamcity-server
使用以下命令启动TeamCity Server容器,需确保数据和日志目录持久化:
bashdocker 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参数指定:
bashdocker 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配置,通过环境变量实现:
bashdocker 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端口:
bashdocker run --name teamcity-server-instance \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p 443:8443 \ # 主机443端口映射到容器8443端口 jetbrains/teamcity-server
以root用户启动容器,直接使用443端口:
bashdocker run --name teamcity-server-instance \ --user 0 \ -v <主机数据目录路径>:/data/teamcity_server/datadir \ -v <主机日志目录路径>:/opt/teamcity/logs \ -p 443:443 \ jetbrains/teamcity-server
TeamCity基于Tomcat服务器运行,可通过挂载自定义配置目录覆盖默认配置:
bashdocker 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容器需指定数据目录、日志目录和临时目录的挂载路径:
powershelldocker 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参数:
powershelldocker 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内存:
bashdocker 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脚本:
bashdocker 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429