Bitbucket实践

前言:之前使用了Atlassian公司的Confluence和Jira,现在新项目考虑使用Bitbucket做代码仓库,这里记录一下调研实践过程。由于之前的服务是使用docker进行部署的,所以Bitbucket也决定使用docker的方式进行部署。

update:
2018-06-12: 添加备份还原文档,文档在【这里】,就不单独在放Blog了

安装

使用Docker的方式,由于Bitbucket基于性能的考虑不推荐使用mysql(参考),所以最后根据推荐决定使用PostgreSQL,以下是编写的docker-compose,可以在【Github】进行查看和建议。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
postgresql:
image: sameersbn/postgresql:9.4-3
environment:
- DB_USER=YourUserName
- DB_PASS=YourPassword
- DB_NAME=YourDatabaseName
volumes:
- /srv/docker/bitbucket/postgresql:/var/lib/postgresql
bitbucket:
image: atlassian/bitbucket-server:5.0
links:
- postgresql:postgresql
ports:
- "80:7990"
- "7999:7999"
environment:
- 'BITBUCKET_PROXY_NAME='
- 'BITBUCKET_PROXY_PORT='
- 'BITBUCKET_PROXY_SCHEME='
- 'BITBUCKET_DELAYED_START='
volumes:
- /srv/docker/bitbucket/app-data:/var/atlassian/application-data/bitbucket

备份及还原

Bitbucket的备份主要包括两部分

  • 家目录:包括仓库数据、日志、插件等,具体参考【官方说明】
  • 数据库:which contains data about pull requests, comments, users, groups, permissions, and so on.

关于备份官方提供了3种方式

类型 不停机备份 自定义备份 客户端备份
概述 使用内部一致性数据库快照和数据块级别文件系统快照进行不停机备份 使用增量备份及云供应商的快照功能 使用外部程序锁定bitbucker服务器实例,并以独立于供应商的格式备份其整个主目录和数据库。使用简单但不适用与高可用环境
高可用 不影响服务 不可用时间短,只需要几秒钟短暂锁定存储桶就可以创建一致的快照 不可用时间长。bitbucket在整个备份过程中被锁定,这可能需要几分钟或更长时间,特别是在大型组织中
版本支持 Bitbucket 4.8+ Bitbucket 4.0+ && Stash 2.12+ Bitbucket 4.0+ && Stash2.7+
文档 【DOC】 【DOC】 【DOC】

参考文献

【官方Docker参考】
【官方备份说明】