文章目录
前提:已 安装docker
1.安装gitlab
# 确保docker进程处于运行状态
systemctl start docker
# 这里我将gitlab安装在/home/gitlabtest下
cd /home
mkdir gitlabtest
cd gitlabtest
# 119.45.234.152 为云服务器ip
# 这里需要设置为--publish 13800:13800,如果设置--publish 13800:80 后期配置克隆地址会有坑,详见后面**注意2**
# gitlab_test 容器名称
# gitlab/gitlab-ce:latest 为社区版
sudo docker run --detach \
--hostname 119.45.234.152 \
--publish 13800:13800 --publish 13822:22 \
--name gitlab_test \
--restart always \
gitlab/gitlab-ce:latest
# 查看
docker ps | grep gitlab_test
# 查看防火墙状态
# 如果不是显示active状态,需要打开防火墙 systemctl start firewalld
systemctl status firewalld
# 查看所有已开放的临时端口,没有13800则需要添加放行
firewall-cmd --list-ports
# 防火墙放行端口13800
# 此处出现报错的话,请参考报错1
firewall-cmd --add-port=13800/tcp --permanent
firewall-cmd --reload
# 测试下,浏览器访问 119.45.234.152:13800(如果是云服务的话记得登录控制台设置安全组放行端口,参见后面 注意1 事项)
# 管理员账号的账号名为 root,密码在一个自动生成的文件 /etc/gitlab/initial_root_password 中(密码不会含空格),且会在 24 小时后自动被删除
# 获取密码命令:sudo docker exec -it gitlab_test grep 'Password:' /etc/gitlab/initial_root_password
119.45.234.152:13800
注意1:如果浏览器访问
119.45.234.152:13800
出现网页无法访问可能是 防火墙没开 或者 云服务没有设置安全组进行端口放行
报错1:
You're performing an operation over default zone ('public'),but your connections/interfaces are in zone 'docker' (see --get-active-zones) You most likely need to use --zone=docker option.
原因: 因为当前的区域(在docker区)和默认的区域(public)不同,此> 时显示的默认区域被允许的服务)# 查看防火墙当前的默认区域 firewall-cmd --get-default-zone # 查看当前所在的区域 firewall-cmd --get-active-zones # 更改当前的区域为public firewall-cmd --change-interface=public
2. 配置
gitlab的配置文件时gitlab.rb,进入里面可以进行相关配置改动
# 进入gitlab容器配置
docker exec -it gitlab_test bash
cd etc/gitlab
ls
# 编辑配置文件gitlab.rb
vi gitlab.rb
i # 进入编辑状态
# 1.克隆地址,此处可以设置为其他的地址,我这里保持克隆地址跟gitlab地址一致
# 注意1:此处有坑:如果设置external_url为ip+port,且前面安装的时候设置的是 --publish 13800:80,则无法访问到GitLab。解决方案详情见:https://www.jianshu.com/p/d707f70c60d2
external_url: 'http://119.45.234.152:13800' # 大约在32行
...
esc # 退出
:wq # 保存
gitlab-ctl reconfigure # 重置gitlab配置以生效
注意2:如果设置external_url为 ip+port,且前面安装的时候设置的是
--publish 13800:80
则会无法访问到GitLab
参考详见:https://www.jianshu.com/p/d707f70c60d2
解决:将容器 gitlab_test 停止并删除,然后再运行run命令。运行完后再重新修改配置为external_url: 'http://119.45.234.152:13800'
# 停止gitlab_test容器 docker stop gitlab_test # 删除gitlab_test容器 docker rm gitlab_test # 运行run命令 # 运行完后再按照上面重新修改配置为 external_url: 'http://119.45.234.152:13800' sudo docker run --detach \ --hostname 119.45.234.152 \ --publish 13800:13800 --publish 13822:22 \ --name gitlab_test \ --restart always \ gitlab/gitlab-ce:latest