!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用户运行容器可能带来权限提升等安全风险,生产环境需进行充分安全评估。
HTTPS反向代理配置
当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相关选项。
HTTPS访问配置
TeamCity Server默认通过443端口提供HTTPS服务,但非root用户(如UID 1000)无法使用1024以下特权端口。解决方法如下:
方法1:端口映射(推荐)
将容器内非特权端口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
方法2:root用户运行(不推荐)
以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
自定义Tomcat配置
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,可参考官方https://github.com/JetBrains/teamcity-docker-samples%E3%80%82
| 环境变量 | 说明 | 示例值 |
|---|---|---|
TEAMCITY_HTTPS_PROXY_ENABLED | 启用HTTPS反向代理模式,使用server-https-proxy.xml配置文件 | true |
TEAMCITY_SERVER_MEM_OPTS | 自定义JVM内存参数 | -Xmx3g -XX:MaxPermSize=270m |
TEAMCITY_CONTEXT | 修改Tomcat中TeamCity应用的上下文路径(默认ROOT,即http://host/) | /teamcity(访问路径变为http://host/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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务