Atlassian Bamboo Server Docker镜像提供企业级持续集成与持续部署(CI/CD)服务,用于自动化软件构建、测试和部署流程,支持团队协作与多环境管理,助力高效交付软件项目。
收藏数: 81
下载次数: 1731548
类型:
atlassian/bamboo-server!Atlassian Bamboo
Bamboo 是一款持续集成和部署工具,可将自动化构建、测试和发布流程整合到单一工作流中。本 Docker 容器旨在简化 Bamboo 实例的部署和运行过程。
该 Docker 镜像同时以 atlassian/bamboo 和 atlassian/bamboo-server 名称发布,两者完全相同。-server 版本已弃用,仅为保持向后兼容性而保留;新安装建议使用较短名称 atlassian/bamboo。
注意:请使用 Docker 版本 >= 20.10.10
了解更多关于 Bamboo 的信息:[***]
BAMBOO_HOME 目录用于存储仓库数据及其他文件,建议通过数据卷或命名卷挂载主机目录。在 Data Center 模式下,必须挂载共享文件系统。
以下示例使用命名卷:
bash# 创建命名卷 $> docker volume create --name bambooVolume # 启动 Bamboo 容器 $> docker run -v bambooVolume:/var/atlassian/application-data/bamboo \ --name="bamboo" \ -d \ -p 8085:8085 \ -p 54663:54663 \ atlassian/bamboo
成功启动后,Bamboo 可通过 http://localhost:8085 访问。
资源建议:建议为容器分配至少 2GiB 内存,具体要求参见 系统要求。
注意:若在 Mac OS X 上使用
docker-machine,请通过open [***] ip default):8085访问。
创建 docker-compose.yml 文件:
yamlversion: '3' services: bamboo: image: atlassian/bamboo container_name: bamboo ports: - "8085:8085" - "54663:54663" volumes: - bambooVolume:/var/atlassian/application-data/bamboo environment: - JVM_MINIMUM_MEMORY=1g - JVM_MAXIMUM_MEMORY=2g - ATL_PROXY_NAME=ci.example.com - ATL_PROXY_PORT=443 - ATL_TOMCAT_SCHEME=https - ATL_TOMCAT_SECURE=true restart: unless-stopped volumes: bambooVolume:
启动服务:
bash$> docker-compose up -d
通过以下环境变量调整 JVM 内存分配:
JVM_MINIMUM_MEMORY:JVM 最小堆大小,默认 512mJVM_MAXIMUM_MEMORY:JVM 最大堆大小,默认 1024m当 Bamboo 部署在反向代理后时,需配置以下环境变量:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ATL_PROXY_NAME | NONE | 反向代理的完全限定域名(兼容 CATALINA_CONNECTOR_PROXYNAME) |
ATL_PROXY_PORT | NONE | 反向代理端口(兼容 CATALINA_CONNECTOR_PROXYPORT) |
ATL_TOMCAT_PORT | 8085 | Tomcat/Bamboo 监听端口 |
ATL_TOMCAT_SCHEME | http | 访问协议(http/https,兼容 CATALINA_CONNECTOR_SCHEME) |
ATL_TOMCAT_SECURE | false | 若 ATL_TOMCAT_SCHEME 为 https,设为 true(兼容 CATALINA_CONNECTOR_SECURE) |
ATL_TOMCAT_CONTEXTPATH | NONE | 应用上下文路径(兼容 CATALINA_CONTEXT_PATH) |
Tomcat 连接器高级配置:
ATL_TOMCAT_MGMT_PORT:管理端口,默认 8007ATL_TOMCAT_MAXTHREADS:最大线程数,默认 150ATL_TOMCAT_MINSPARETHREADS:最小空闲线程数,默认 25ATL_TOMCAT_CONNECTIONTIMEOUT:连接超时时间(毫秒),默认 20000ATL_TOMCAT_COMPRESSION:是否启用压缩(off/on/force/数值),默认关闭ATL_TOMCAT_COMPRESSIBLEMIMETYPE:可压缩 MIME 类型,默认 text/html,text/xml,...ATL_TOMCAT_ACCESS_LOGS_MAXDAYS:访问日志保留天数,默认 -1(永不删除)通过 JVM_SUPPORT_RECOMMENDED_ARGS 传递额外 JVM 参数(如自定义信任库):
bash$> docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/bamboo/cacerts \ -v bambooVolume:/var/atlassian/application-data/bamboo \ --name="bamboo" \ -d \ -p 8085:8085 \ -p 54663:54663 \ atlassian/bamboo
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ATL_AUTOLOGIN_COOKIE_AGE | ***(2周,秒) | "记住我"功能的最大登录时长 |
BAMBOO_HOME | /var/atlassian/application-data/bamboo | Bamboo 主目录,需确保 bamboo 用户可写 |
ATL_BROKER_URI | nio://0.0.0.0:54663 | ActiveMQ 代理监听地址(用于远程代理通信) |
ATL_BROKER_CLIENT_URI | - | 远程代理连接 ActiveMQ 的 URI |
ATL_BAMBOO_SKIP_CONFIG | false | 是否跳过生成 bamboo.cfg.xml(仅 Bamboo >=8.1 支持) |
自动配置(Bamboo >=8.1)
可通过环境变量跳过安装向导,需提供以下参数:
| 环境变量 | 说明 |
|---|---|
SECURITY_TOKEN | 服务器/代理认证的安全令牌 |
ATL_BAMBOO_DISABLE_AGENT_AUTH | 是否禁用代理认证,默认 false |
ATL_LICENSE | 许可证密钥(可从 [***] 获取) |
ATL_BASE_URL | Bamboo 实例基础 URL |
ATL_ADMIN_USERNAME | 管理员用户名 |
ATL_ADMIN_PASSWORD | 管理员密码 |
ATL_ADMIN_FULLNAME | 管理员全名 |
ATL_ADMIN_EMAIL | 管理员*** |
ATL_IMPORT_OPTION | 导入选项:clean(默认,全新安装)或 import(从备份导入) |
ATL_IMPORT_PATH | 备份文件路径(当 ATL_IMPORT_OPTION=import 时必填) |
可通过环境变量预配置数据库(安装向导将自动填充),需提供以下所有参数:
| 环境变量 | 说明 |
|---|---|
ATL_JDBC_URL | 数据库 URL(数据库特定格式) |
ATL_JDBC_USER | 数据库用户名 |
ATL_JDBC_PASSWORD | 数据库密码 |
ATL_DB_TYPE | 数据库类型:h2(仅评估)、mssql、mysql、oracle12c、postgresql |
示例(PostgreSQL):
bash$> docker run -e ATL_DB_TYPE=postgresql \ -e ATL_JDBC_URL=jdbc:postgresql://postgres:5432/bamboo \ -e ATL_JDBC_USER=bamboouser \ -e ATL_JDBC_PASSWORD=bamboopassword \ ...(其他参数)... atlassian/bamboo
注意:由于许可证限制,Bamboo 7.0+ 不包含 MySQL/Oracle JDBC 驱动。需手动复制驱动到容器:
bash# 复制 MySQL 驱动到容器 $> docker cp mysql-connector-java.x.y.z.jar bamboo:/opt/atlassian/bamboo/lib # 重启容器 $> docker restart bamboo
数据库连接池配置(可选):
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ATL_DB_POOLMINSIZE | 3 | 最小连接数 |
ATL_DB_POOLMAXSIZE | 170 | 最大连接数 |
ATL_DB_TIMEOUT | *** | 超时时间(毫秒) |
ATL_DB_CONNECTIONTIMEOUT | 30000 | 连接超时时间(毫秒) |
ATL_DB_LEAKDETECTION | 0 | 泄漏检测阈值(毫秒,0为禁用) |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
ATL_FORCE_CFG_UPDATE | false | 是否强制更新配置文件(适用于 Kubernetes 等环境) |
ATL_ALLOWLIST_SENSITIVE_ENV_VARS | - | 敏感环境变量白名单(逗号分隔,如 "PATH_TO_SECRET_FILE") |
SET_PERMISSIONS | true | 是否在启动时设置主目录权限 |
Bamboo 默认以 bamboo 用户(UID/GID=2005)运行,需确保 BAMBOO_HOME 目录对该 UID 可写。如需使用其他 UID,可通过以下方式:
升级步骤:
停止当前容器:
bash$> docker stop bamboo
删除容器(保留数据卷):
bash$> docker rm bamboo
使用新版本镜像启动:
bash$> docker run ...(使用与初始启动相同的参数)... atlassian/bamboo:8.x.x
警告:不要使用
-v选项删除容器,以免丢失数据卷。
备份详情参见 数据和备份。
Bamboo 可能需要时间完成活跃操作,建议通过 docker stop 时预留足够时间:
bash# 允许 30 秒关闭时间 $> docker stop -t 30 bamboo
或使用内置脚本优雅关闭:
bash$> docker exec bamboo /shutdown-wait.sh
atlassian/bamboo:latest:最新稳定版atlassian/bamboo:8(主版本)、atlassian/bamboo:8.0(次版本)、atlassian/bamboo:8.0.1(补丁版本)注:仅 8.0+ 版本持续更新,旧版本镜像仍可使用但不再维护。
克隆仓库:
bash$> git clone [***]
修改 config 目录下的 Jinja 模板(.j2 扩展名)
构建镜像:
bash$> docker build --tag my-bamboo-image --build-arg BAMBOO_VERSION=8.x.x .
通过内置脚本收集线程转储:
bash# 默认:10次转储,间隔5秒 $> docker exec my_container /opt/atlassian/support/thread-dumps.sh # 自定义:20次转储,间隔3秒 $> docker exec my_container /opt/atlassian/support/thread-dumps.sh --count 20 --interval 3
转储文件保存至 $APP_HOME/thread_dumps/<date>。
生成堆转储:
bash# 生成堆转储 $> docker exec my_container /opt/atlassian/support/heap-dump.sh # 覆盖现有文件 $> docker exec my_container /opt/atlassian/support/heap-dump.sh --force
堆转储文件保存至 $APP_HOME/heap.bin。
通过 jcmd 工具诊断:
bash$> docker exec -it my_container /bin/bash $> jcmd # 查看进程ID $> jcmd <pid> <command> # 执行诊断命令
镜像配置变更详情参见 Git 提交历史。
Copyright © 2020 Atlassian Corporation Pty Ltd.
基于 Apache License 2.0 许可。
以下是 atlassian/bamboo-server 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务