
























最佳实践方案是:在阿里云上部署 Bitbucket Data Center 主实例,并使用 VPN 网关 (VPN Gateway) 将阿里云的 VPC (虚拟私有云) 与上海、成都的办公室网络打通,形成一个安全的混合云网络。Mirror 实例部署在各自的办公室机房内,通过这个安全的 VPN 通道与主实例进行同步。
云端 (阿里云 - 主实例):
shared home),这是 Data Center 模式的必要条件。网络连接 (关键):
本地 (上海/成都 - 镜像实例):
资源准备:
部署步骤:
挂载 NAS: 在 ECS 服务器上,将 NAS 文件系统挂载到一个本地目录,例如 /mnt/bitbucket-shared。
# (在ECS上执行)
sudo mkdir -p /mnt/bitbucket-shared
# 根据阿里云提供的挂载命令进行挂载
sudo mount -t nfs -o vers=4.0 ... /mnt/bitbucket-shared
# 设置开机自动挂载 (写入 /etc/fstab)
创建 docker-compose.yml (在 ECS 上)
这个配置文件将不会包含数据库服务,因为它会连接到外部的 RDS。
# /path/to/your/bitbucket-dc/docker-compose.yml
version: '3.8'
services:
bitbucket-datacenter:
image: atlassian/bitbucket-server:8.16
container_name: bitbucket-dc
restart: unless-stopped
ports:
- "7990:7990" # Web UI
- "7999:7999" # Git over SSH
environment:
# --- 许可证 ---
- BITBUCKET_LICENSE=your_bitbucket_license_key
# --- 数据库 (连接到 RDS) ---
- JDBC_DRIVER=org.postgresql.Driver
- JDBC_URL=jdbc:postgresql://<your-rds-endpoint>:5432/<your-db-name> # <--- 替换为 RDS 信息
- JDBC_USER=<your-rds-user>
- JDBC_PASSWORD=<your-rds-password>
# --- 集群和基础 URL ---
- BITBUCKET_HOME=/var/atlassian/application-data/bitbucket
# 关键: 使用 ECS 的内网 IP,因为通信走 VPN
- BITBUCKET_PROXY_NAME=<ecs-private-ip-address> # <--- 替换为 ECS 的内网 IP
- BITBUCKET_PROXY_PORT=7990
- BITBUCKET_PROXY_SCHEME=http
volumes:
# 关键: 将挂载的 NAS 目录映射到容器的 shared 目录
- /mnt/bitbucket-shared:/var/atlassian/application-data/bitbucket/shared
在上海和成都的服务器上,部署流程是相似的,只是 BITBUCKET_PROXY_NAME 不同。
以上海为例:
# /path/to/your/bitbucket-mirror-sh/docker-compose.yml
version: '3.8'
services:
bitbucket-mirror:
image: atlassian/bitbucket-server:8.16
container_name: bitbucket-mirror-sh
# ... (ports, license, etc. 与之前的 Mirror 示例相同)
environment:
# ... (JDBC, License等)
# 关键: 使用上海办公室服务器的内网 IP
- BITBUCKET_PROXY_NAME=<shanghai-server-private-ip> # <--- 替换为上海服务器的内网 IP
- BITBUCKET_PROXY_PORT=7991 # 规划的端口
- BITBUCKET_PROXY_SCHEME=http
# ... (其他配置,包括本地数据库服务)
配置连接:
当你在上海的 Mirror (http://<shanghai-server-private-ip>:7991) 设置向导中连接主实例时,你将输入主实例的内网地址:http://<ecs-private-ip-address>:7990。因为 VPN 已经打通,这个地址是可以直接访问的。
这是决策的核心,我们来详细对比几种方案。
| 方案 | 优点 (Pros) | 缺点 (Cons) | 推荐度 |
|---|---|---|---|
| 方案 A: VPN 隧道 (推荐) | 高安全性:所有流量都在加密隧道中,不暴露于公网。 网络简化:云和本地像在同一局域网,配置简单。 稳定可靠:比公网连接更稳定。 | 成本:需要支付阿里云 VPN 网关费用和流量费。 初始设置复杂:需要网络工程师配置 VPN。 | ★★★★★ |
| 方案 B: 公网暴露 + IP白名单 | 低成本:无需额外网络服务费用。 设置快速:只需在防火墙/安全组中添加规则。 | 低安全性:端口暴露在公网,持续面临扫描和攻击风险。 管理复杂:IP 地址变更时需要更新所有白名单。 性能不稳定:公网链路质量无法保证。 | ★★☆☆☆ |
| 方案 C: 专线 (Express Connect) | 极致性能和安全:物理专线,延迟最低,带宽有保障,最安全。 | 成本极高:费用远高于 VPN,且有初装费和月租。 部署周期长:需要与运营商协调,耗时数周或数月。 | ★☆☆☆☆ (除非公司已有专线) |
结论:对于绝大多数企业,VPN 是在安全性、成本和性能之间取得最佳平衡的方案。
git clone / git pull),速度极快,不受跨地域网络延迟影响,极大提升开发体验。这个方案虽然初始设置较为复杂,但一旦建成,将为一个地理位置分散的团队提供一个既健壮又高效的代码协作平台。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。