搭建Gitlab环境小记

部署

[https://docs.gitlab.com/ee/install/docker.html]

docker pull gitlab/gitlab-ce:15.4.6-ce.0
cd /home/server
mkdir gitlab
mkdir -p gitlab/config
mkdir -p gitlab/logs
mkdir -p gitlab/data
export GITLAB_HOME=/home/server/gitlab
#查看操作系统是否启用selinux
getenforce
#欧拉如果启用SELinue,需要加”Z”⬇️	
#需要显式制定ip才能用这个ip打开(巨坑)
#lfs_enabled:允许大文件
sudo docker run --detach \
  --hostname gitlab.bye \
  --publish 90:443 --publish 95:80 --publish 96:22 \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.50.80:95';gitlab_rails['lfs_enabled'] = true;" \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab:Z \
  --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
  --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
  --shm-size 256m \
  gitlab/gitlab-ce:15.4.6-ce.0
sudo docker logs -f gitlab  # 大概等待15分钟

Ctrl+c退出log查看

#查看root默认密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

登录后台

# 如果没有指定192.168.50.80,除了运行gitlab的机器,其他机器暂时还无法打开网页
# 命令行浏览器
yum -y install lynx
lynx http://127.0.0.1:95

然后会看到登录界面


(其实这样还是能正常操作的)
用户名:root
密码:qs********

#获取本机ssh密钥
cat ~/.ssh/id_rsa.pub

修改配置(没什么用)

# 修改配置然后重启
sudo docker exec -it gitlab /bin/bash
vim /etc/gitlab/gitlab.rb
# For HTTP
external_url “http://192.168.50.80:95”
gitlab-ctl reconfigure

问题解决

[https://www.cnblogs.com/zhncnblogs/p/15955454.html]
在gitlab的安装过程中,有一步是设置external_url
顾名思义,在这里配置的是从外部机器访问gitlab的ip或者域名,后面可以加端口号。
如果gitlab与访问它的客户机在同一网络,或者gitlab就在公网上,这么设置是可以的。
但是,如果gitlab部署在DMZ,需要通过防火墙映射出去,这时如果望文生义的将external_url设置为外网IP+端口或者外网域名,就会导致无法访问GITLAB。
究其原因分析如下:
1、external_url配置的是客户机访问gitlab的ip、域名、端口。而通过防火墙映射的时候,实际是防火墙在访问它,而不是外网终端访问它。所以,external_url针对的应该是防火墙访问它时的IP、域名或者端口,因此,不要设置外外网IP+端口或者外网域名。
2、外网访问时,访问的是防火墙映射出来的IP、域名或者端口,不需要在external_url中设置。

posted @ 2022-12-05 16:26  qsBye  阅读(83)  评论(0编辑  收藏  举报