本文讲解bitbucket代码托管平台的搭建步骤。
以centos镜像为基础构建已安装jdk的镜像
前提
你的服务器上面有docker环境,没有的话,请去安装。
构建镜像
从官方网站下载jdk安装包,我搭建的时候用的 jdk-8u231-linux-x64.tar.gz
我将我下载的安装包文件等,都放到了服务器的 /mydata/tools
下。
# 创建镜像构建目录
mkdir -p /mydata/tools
# 进入镜像构建目录
cd /mydata/tools
# 将下载的jdk安装包 jdk-8u231-linux-x64.tar.gz 上传到该目录
# 创建构建文件
vim Dockerfile
构建文件内容如下:
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
构建镜像
# 构建镜像,且镜像名为 1centos-jdk
docker build -t centos-jdk .
注:该镜像在安装其他需要jdk的atlassian工具时,也可以使用。
以centos-jdk镜像为基础启动容器
docker run \
-dit \
--name tool_bitbucket \
-p 7990:7990 \
-v /mydata/atlassian/bitbucket:/var/atlassian/bitbucket \
centos-jdk
下载相关安装包
# 进入安装包目录
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
# 进入容器(宿主机中执行)
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(仍在容器中操作)
# 进入bitbucket执行文件目录(容器中执行)
cd /root/atlassian-bitbucket-5.8.0/bin
# 执行bitbucket启动文件
./start-bitbucket.sh
宿主机配置反向代理
# 进入安装包目录
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
修改配置文件
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;
}
}
启动和关停命令
# 使用绝对路径根据配置文件执行启动命令
/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。
中文包
上传好了,刷新一下页面就是中文了。
数据迁移
我由于不知道这玩意默认用的什么数据库,可能是我中间有什么过程漏了,打开页面也没让我配置数据库,然后页面上还有红色提示,打开后台后上面显示用的内部数据库,我不知道靠不靠谱。
然后我去数据迁移模块将数据迁移到 PostgreSQL 上了。
通过 Docker 安装 PostgreSQL:
docker run --name postgresql -e POSTGRES_PASSWORD=你的密码 -p 5432:5432 -d postgres:9.4
注意:
postgres镜像默认的用户名和库名好像为postgres
,登陆密码为创建容器时指定的值。
这玩意可以通过 DataGrip
连接管理,不得不说 DataGrip
真强大。
然后数据迁移的时候,指定 PostgreSQL 输入对应值,测试下连接,然后迁移就行了。
评论区