搭建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中设置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」