搭建bitbucket代码托管平台

本文讲解bitbucket代码托管平台的搭建步骤。

以centos镜像为基础构建已安装jdk的镜像

前提

你的服务器上面有docker环境,没有的话,请去安装。

构建镜像

官方网站下载jdk安装包,我搭建的时候用的 jdk-8u231-linux-x64.tar.gz

我将我下载的安装包文件等,都放到了服务器的 /mydata/tools 下。

1
2
3
4
5
6
7
 # 创建镜像构建目录
mkdir -p /mydata/tools
# 进入镜像构建目录
cd /mydata/tools
# 将下载的jdk安装包 jdk-8u231-linux-x64.tar.gz 上传到该目录
# 创建构建文件
vim Dockerfile

构建文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
FROM centos

# 更新系统及更新源(可与其他构建共享此镜像层)
RUN yum -y update \
&& yum -y install epel-release

# 追加jdk安装包
ADD jdk-8u231-linux-x64.tar.gz /usr/local/

# 安装jdk
RUN echo export JAVA_HOME=/usr/local/jdk1.8.0_231 >> /etc/profile \
&& echo export JAVA_BIN=/usr/local/jdk1.8.0_231/bin >> /etc/profile \
&& echo export PATH=$PATH:$JAVA_HOME/bin >> /etc/profile \
&& echo export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar >> /etc/profile \
&& echo export JAVA_HOME JAVA_BIN PATH CLASSPATH >> /etc/profile \
&& source /etc/profile \
&& cd /usr/bin \
&& ln -s -f /usr/local/jdk1.8.0_231/jre/bin/java \
&& ln -s -f /usr/local/jdk1.8.0_231/bin/javac

# 启动监听
CMD /bin/bash

构建镜像

1
2
# 构建镜像,且镜像名为 1centos-jdk
docker build -t centos-jdk .

注:该镜像在安装其他需要jdk的atlassian工具时,也可以使用。

以centos-jdk镜像为基础启动容器

1
2
3
4
5
6
docker run \
-dit \
--name tool_bitbucket \
-p 7990:7990 \
-v /mydata/atlassian/bitbucket:/var/atlassian/bitbucket \
centos-jdk

下载相关安装包

image-20211225155728051

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 进入安装包目录
cd /mydata/tools

# 下载git安装包
wget https://github.com/git/git/archive/v2.16.1.tar.gz
# 从atlassian下载bitbucket安装包(宿主机中执行)
wget https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-5.8.0.tar.gz
# 从mysql官方下载mysql的java驱动(宿主机中执行)
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz

# 解压缩git安装包(宿主机中执行)
tar zxf v2.16.1.tar.gz
# 解压缩bitbucket安装包(宿主机中执行)
tar zxf atlassian-bitbucket-5.8.0.tar.gz
# 解压缩mysql驱动包(宿主机中执行)
tar zxf mysql-connector-java-5.1.45.tar.gz
# 将解压后的mysql驱动文件复制到bitbucket资源目录中
cp mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar atlassian-bitbucket-5.8.0/app/WEB-INF/lib/

# 这里最好还要下两个文件一个是 atlassian-extras-decoder-v2-3.3.0.jar
# 另一个是 atlassian-extras-legacy-3.3.0.jar 这两个文件,用于延长使用期限,要不只有使用期限。
# 下载好后,拷贝到bitbucket资源目录中,将原来的两个替换掉
cp atlassian-extras-decoder-v2-3.3.0.jar atlassian-bitbucket-5.8.0/app/WEB-INF/lib/
cp atlassian-extras-legacy-3.3.0.jar atlassian-bitbucket-5.8.0/app/WEB-INF/lib/

# 进入bitbucket执行文件目录
cd atlassian-bitbucket-5.8.0/bin
# 开始编辑set-bitbucket-home.sh文件,编辑完成后保存退出
vi set-bitbucket-home.sh
#------------------------
# 将以下:
BITBUCKET_HOME=
# 修改为:
BITBUCKET_HOME=/var/atlassian/bitbucket
#--------------------------

# 返回安装包目录
cd /mydata/tools
# 将解压后的git安装文件复制到容器的/root/目录下(宿主机中执行)
docker cp git-2.16.1 tool_bitbucket:/root/
# 将解压后的bitbucket文件复制到容器的/root/目录下(宿主机中执行)
docker cp atlassian-bitbucket-5.8.0 tool_bitbucket:/root/

开始安装git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 进入容器(宿主机中执行)
docker exec -it tool_bitbucket bash

# 以下为容器中操作
# 安装git会依赖的包
yum -y install epel-release gcc gcc-c++ pcre pcre-devel zlib zlib-devel \
openssl openssl-devel libcurl-devel expat-devel \
perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker tcl gettext-devel

# 移除git原有版本
yum -y remove git

# 进入git源文件目录
cd /root/git-2.16.1/
# 编译源文件
make prefix=/usr/local/git all
# 安装git
make prefix=/usr/local/git install
# 将git安装路径配置到配置文件
echo export PATH=$PATH:.:/usr/local/git/bin >> /etc/profile
# 重新加载配置文件,使新配置生效
source /etc/profile
# 查看git版本
git --version
# 出现以下内容即为成功
git version 2.16.1

注:如果重启bitbucket,出现什么 jre-home等相关字眼,可以先检查下 git 命令是否可用。

如果不可用了,可以重新执行下上面的命令。(我遇到过这个问题,这里记录下)

开始安装bitbucket(仍在容器中操作)

1
2
3
4
# 进入bitbucket执行文件目录(容器中执行)
cd /root/atlassian-bitbucket-5.8.0/bin
# 执行bitbucket启动文件
./start-bitbucket.sh

宿主机配置反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
# 进入安装包目录
cd /mydata/tools
# 下载 nginx-1.14.2.tar.gz
wget http://nginx.org/download/nginx-1.14.2.tar.gz
# Nginx的安装需要确定Linux安装相关的几个库,否则配置和编译会出现错误
yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
# 解压
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
# (其中--prefix是指定nginx安装路径) 注意:等号左右不要有空格
./configure --prefix=/usr/local/nginx
# 执行命令进行编译安装
make && make install

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /usr/local/nginx/conf/nginx.conf

# 添加如下内容配置反向代理,即通过网址访问本机的8080端口,代理到7990端口上
# 而 7990 端口通过端口映射和 docker 容器绑定着,自然可以访问到 bitbucket
server {
listen 8080;
location / {
proxy_pass http://localhost:7990;
proxy_read_timeout 6000s;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024M;
}
}

启动和关停命令

1
2
3
4
# 使用绝对路径根据配置文件执行启动命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 关闭nginx
/usr/local/nginx/sbin/nginx -s stop

当然上述 nginx 安装通过docker镜像创建也行,这里只是复习一下 nginx 的安装使用。

登陆bitbucket并配置

记得如果是云服务器的话,要把端口安全策略打开,要不没权限访问不了。

访问 ip:8080,即可打开bitbucket配置页面。

配置过程中可能会让你输入 license,去官网生成一个试用的。

这里我一开始不知道是试用的,我知道是试用的后,我用上面的方式延长了使用期限。

所以我安装的时候是先输入 license,进入系统,才去下载之前的那两个jar包,然后重新启动就延长了。

我不知道先上传那两个jar包,安装会不会有问题,如果出问题了,那就后上传那两个jar包。

配置完成后即可正常使用bitbucket。

中文包

点我去下载

image-20211225160200629

上传好了,刷新一下页面就是中文了。

数据迁移

我由于不知道这玩意默认用的什么数据库,可能是我中间有什么过程漏了,打开页面也没让我配置数据库,然后页面上还有红色提示,打开后台后上面显示用的内部数据库,我不知道靠不靠谱。

然后我去数据迁移模块将数据迁移到 PostgreSQL 上了。

通过 Docker 安装 PostgreSQL:

1
docker run --name postgresql -e POSTGRES_PASSWORD=你的密码 -p 5432:5432 -d postgres:9.4

注意

postgres镜像默认的用户名和库名好像为postgres,登陆密码为创建容器时指定的值。

这玩意可以通过 DataGrip 连接管理,不得不说 DataGrip 真强大。

然后数据迁移的时候,指定 PostgreSQL 输入对应值,测试下连接,然后迁移就行了。

本文标题:搭建bitbucket代码托管平台

文章作者:LiJing

发布时间:2021年12月25日 - 14:57:06

最后更新:2023年06月03日 - 09:56:54

原始链接:https://blog-next.xiaojingge.com/posts/1902064607.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------