本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
!Atlassian Bitbucket Server
Bitbucket Server 是一款本地部署的 Git 源代码管理解决方案,具备安全、快速和企业级特性。可用于创建和管理代码仓库、设置细粒度权限以及进行代码协作,同时提供服务器部署的灵活性。
本 Docker 容器旨在简化 Bitbucket 实例的部署和运行流程。该 Docker 镜像同时以 atlassian/bitbucket 和 atlassian/bitbucket-server 名称发布,两者内容完全相同,但 -server 版本已弃用,仅为保持向后兼容性而保留;建议新安装使用较短的名称 atlassian/bitbucket。
注意:为保持向后兼容性,默认情况下镜像会同时启动 Bitbucket 和嵌入式 OpenSearch。但此配置不推荐使用,尤其是在集群环境中,且存在已知的关闭问题。建议运行独立的 OpenSearch 实例(可在另一个 Docker 容器中),详见下文“连接外部 OpenSearch 集群”的说明。
注意:如果在生产环境中运行此镜像,强烈建议使用特定版本标签而非
latest。因为latest标签指向的镜像频繁更新,无法保证向后兼容性。
使用 Docker 版本 >= 20.10.10
BITBUCKET_HOME 目录用于存储仓库数据及其他信息,建议将主机目录挂载为数据卷或使用命名卷。在 Data Center 模式下运行时,必须挂载共享文件系统。
卷权限由入口脚本管理。以下示例使用命名卷:
# 创建命名卷 $> docker volume create --name bitbucketVolume # 启动容器 $> docker run -v bitbucketVolume:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket
也可使用主机目录替代命名卷:
$> docker run -v /data/bitbucket:/var/atlassian/application-data/bitbucket --name="bitbucket" -d -p 7990:7990 -p 7999:7999 atlassian/bitbucket
成功启动后,Bitbucket 可通过 http://localhost:7990 访问。
注意:确保容器分配足够资源,建议至少 2GiB 内存以容纳应用服务器和 Git 进程。更多信息参见支持的平台。
注意:如果在 Mac OS X 上使用
docker-machine,请使用open [***] ip default):7990访问。
如果 Bitbucket 在反向代理服务器后运行(如此处所述),需指定以下环境变量使 Bitbucket 感知代理配置:
SERVER_PROXY_NAME(默认:NONE):反向代理的完全限定主机名
SERVER_PROXY_PORT(默认:NONE):访问 Bitbucket 使用的反向代理端口
SERVER_SCHEME(默认:http):访问 Bitbucket 使用的协议(http/https)
在某些云环境(如 Kubernetes、Heroku 和 Cloud Foundry)中,若入口或负载均衡器发送 X-Forwarded-Proto 请求头,此设置将被该头的值覆盖。
SERVER_SECURE(默认:false):当 SERVER_SCHEME 为 https 时设为 true
SERVER_FORWARD_HEADERS_STRATEGY(默认:在指定云环境中为 NATIVE,其他为 NONE):显式设为 NONE 可禁用 X-Forwarded-* 头优先级,使系统使用 SERVER_SCHEME 配置
如需覆盖默认内存配置或传递额外 JVM 参数,可使用以下环境变量:
JVM_MINIMUM_MEMORY(默认:512m):JVM 最小堆大小JVM_MAXIMUM_MEMORY(默认:1024m):JVM 最大堆大小JVM_SUPPORT_RECOMMENDED_ARGS(默认:NONE):额外 JVM 参数,如自定义 Java 信任存储本镜像可作为智能镜像或数据中心集群节点运行。可通过以下属性指定运行模式:
SEARCH_ENABLED(默认:true):设为 false 可阻止容器内启动 OpenSearch,适用于外部运行 OpenSearch 的场景(如数据中心集群)。也可使用 ELASTICSEARCH_ENABLED(已弃用)设置此属性。APPLICATION_MODE(默认:default):运行模式,设为 'mirror' 可启动为智能镜像,此时即使未设置 SEARCH_ENABLED=false 也会禁用 OpenSearch。首次运行时可通过以下设置自动配置数据库:
JDBC_DRIVER:JDBC 驱动类名JDBC_URL:数据库连接 URLJDBC_USER:数据库用户名JDBC_PASSWORD:数据库密码注意:由于许可限制,Bitbucket 未包含 MySQL 或 Oracle JDBC 驱动。使用这些数据库时,需将驱动复制到容器并重启。例如,向名为 "bitbucket" 的容器复制 MySQL 驱动:
docker cp mysql-connector-java.x.y.z.jar bitbucket:/var/atlassian/application-data/bitbucket/lib docker restart bitbucket更多信息参见连接 Bitbucket Server 到外部数据库。
从 Bitbucket 8.13 开始,JDBC 密码可通过 AWS Secrets Manager 管理。例如,使用 PostgreSQL 数据库并通过 AWS Secrets Manager 管理密码的 Bitbucket 节点配置:
$> docker run \ -e JDBC_DRIVER=org.postgresql.Driver \ -e JDBC_USER=atlbitbucket \ -e JDBC_PASSWORD="{\"region\":\"us-east-1\",\"secretId\":\"mysecret\",\"secretPointer\":\"password\"}" \ -e JDBC_PASSWORD_DECRYPTER_CLASSNAME="com.atlassian.secrets.store.aws.AwsSecretsManagerStore" \ -e JDBC_URL=jdbc:postgresql://my.database.host:5432/bitbucket \ -v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared \ --name="bitbucket" \ -d -p 7990:7990 -p 7999:7999 \ atlassian/bitbucket
除上述设置外,bitbucket.properties 文件中的所有设置均可通过 Docker 环境变量提供。环境变量与属性的映射规则参见Spring Boot 文档。
例如,使用 PostgreSQL 数据库和外部 OpenSearch 实例的完整命令:
$> docker network create --driver bridge --subnet=172.18.0.0/16 myBitbucketNetwork $> docker run --network=myBitbucketNetwork --ip=172.18.1.1 \ -e SEARCH_ENABLED=false \ -e JDBC_DRIVER=org.postgresql.Driver \ -e JDBC_USER=atlbitbucket \ -e JDBC_PASSWORD=MYPASSWORDSECRET \ -e JDBC_URL=jdbc:postgresql://my.database.host:5432/bitbucket \ -e PLUGIN_SEARCH_CONFIG_BASEURL=[***] \ -v /data/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared \ --name="bitbucket" \ -d -p 7990:7990 -p 7999:7999 \ atlassian/bitbucket
运行 Bitbucket DC 集群时,集群设置通过 HAZELCAST_* 环境变量指定,主要包括:
HAZELCAST_PORT(对应 hazelcast.port):Hazelcast 端口HAZELCAST_GROUP_NAME(对应 hazelcast.group.name):集群组名称HAZELCAST_GROUP_PASSWORD(对应 hazelcast.group.password):集群组密码不同集群类型(如 AWS/Azure/多播/TCP)有各自的设置。更多信息参见Bitbucket Data Center 集群配置和配置属性。
注意:底层网络需配置为支持所选集群类型,具体配置取决于容器管理技术,超出本文档范围。
设置 JMX_ENABLED=true 可启用 JMX 监控。更多设置和指标信息参见Bitbucket JMX 文档。
SET_PERMISSIONS(默认:true):定义启动时是否设置主目录权限,设为 false 可禁用此行为默认情况下,Bitbucket 应用以用户 bitbucket 运行,UID 和 GID 均为 2003。因此,该 UID 必须对共享文件系统有写权限。如需使用不同 UID,可通过以下方式:
要升级到 Bitbucket Server 新版本,只需停止当前容器并启动基于新版本镜像的容器:
$> docker stop bitbucket $> docker rm bitbucket $> docker pull atlassian/bitbucket:<目标版本> $> docker run ... (参见上文启动命令)
数据存储在主机的数据卷目录中,升级后仍可访问。
注意:确保不要使用
-v选项意外删除bitbucket容器及其卷。
评估环境中可使用内置数据库,其文件存储在 Bitbucket Server 主目录中,此时只需备份主机上用作卷的目录(如示例中的 /data/bitbucket)。
Bitbucket Server 备份客户端目前不支持 Docker 环境,但可使用Bitbucket Server DIY 备份方法(适用于使用外部数据库的情况)。
更多数据恢复和备份信息:[***]
Bitbucket 允许配置活动操作完成的宽限期(默认 30 秒)。执行 docker stop 时应使用 --time 标志考虑此宽限期。
此外,提供 /shutdown-wait.sh 脚本,可启动干净关闭并等待进程完成。这是有序关闭环境(如 Kubernetes 的 preStop 钩子)中的推荐方法。
latest 标签对应仓库的最新版本,使用 atlassian/bitbucket:latest 或 atlassian/bitbucket 将获取最新镜像。
也可使用特定次要版本标签,如 atlassian/bitbucket:6,将安装最新的 6.x.x 版本。
所有 Atlassian Docker 镜像现在仅支持 JDK11,基于官方 Eclipse Temurin OpenJDK Docker 镜像构建。
Docker 镜像遵循Atlassian 支持生命周期政策;不支持版本的产品镜像仍可获取,但不再接收更新或修复。
历史上曾生成其他版本镜像(如 JDK8、Alpine、JDK "slim" 版本),这些遗留镜像仍存在于 Docker Hub,但已弃用且不再更新。
如需其他版本,参见“构建自己的镜像”部分。
config 目录下的 Jinja 模板(注意:文件必须有 .j2 扩展名,可选择不使用模板变量)docker build --tag my-bitbucket-image --build-arg BITBUCKET_VERSION=8.x.x .目前 Atlassian Docker 镜像为 linux/amd64 目标平台构建;暂未计划支持其他架构。但 Dockerfile 和支持工具已移除所有架构特定组件,因此可构建 Docker 支持的任何平台镜像。
获取平台镜像的最简单方法是在目标机器上构建,参见上文“构建自己的镜像”。
注意:此方法已知在 Mac M1 和 AWS ARM64 机器上有效,但未经过广泛测试。
本镜像包含内置脚本,协助执行常见 JVM 诊断任务。
/opt/atlassian/support/thread-dumps.sh 可通过 docker exec 运行,轻松收集容器化应用的线程转储:
docker exec my_container /opt/atlassian/support/thread-dumps.sh
默认收集 10 次线程转储,间隔 5 秒。可使用 -c/--count 和 -i/--interval 覆盖默认值,例如收集 20 次,间隔 3 秒:
docker exec my_container /opt/atlassian/support/thread-dumps.sh --count 20 --interval 3
线程转储将写入 $APP_HOME/thread_dumps/<日期>。
注意:默认情况下,脚本还会捕获 'Thread-mode' 的 top 输出,可通过
-n/--no-top禁用。
/opt/atlassian/support/heap-dump.sh 可通过 docker exec 运行,收集应用堆转储:
docker exec my_container /opt/atlassian/support/heap-dump.sh
堆转储将写入 $APP_HOME/heap.bin。若文件已存在,使用 -f/--force 覆盖。
镜像包含 jcmd 工具,可通过在运行的容器中启动 bash shell 使用:
docker exec -it my_container /bin/bash
产品支持请访问 [support.atlassian
免费版仅支持 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