本地搭建gitlab
如何使用docker在ubuntu22.04中搭建Gitlab(无坑版)
[TOC]
安装docker
这里推荐使用官方教程docker官方安装教程安装
更新源
1
2sudo apt-get update
sudo apt-get install ca-certificates curl gnupg添加GPGkey
1
2
3sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg建立仓库
1
2
3
4echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null更新一下源
1
sudo apt-get update
安装docker
1
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
测试一下
1
sudo docker run hello-world
tips
每次使用docker命令的时候都要求sudo权限,为了避免麻烦,可以在~目录下建立 .bash_aliases 在里面输入
1 | alias docker='sudo docker' |
然后输入
1 | source ~/.bashrc |
使用docker安装Gitlab
建立环境变量
为了使镜像与配置分离,首先建立如下的环境变量
1 | echo 'export GITLAB_HOME=/srv/gitlab' >> ~/.bash_profile |
然后输入
1 | source ~/.bash_profile |
这里的 /srv 可以自己选择
下载gitlab镜像
1 | docker pull gitlab/gitlab-ce:latest |
这个有两个G,要等一会儿。
这里的ce是稳定版,你也可以下载ee或其他版本
安装Gitlab
1 | sudo docker run --detach \ |
注意事项:
- –hostname gitlab.example.com 这里的gitlab.example.com是你的域名,如果没有域名,可以使用ip地址,而且一旦生效之后不好修改,如果后续要修改比较麻烦。如果你要发布到公网上,建议这里填写预留的域名
- –publish 443:443 –publish 80:80 –publish 22:22 这里的端口号可以自己选择,但是443和80是必须的,443是https的端口,80是http的端口,22是ssh的端口,如果你要发布到公网上,建议这里填写预留的端口号。同样,这个一旦生效之后不好修改,建议先考虑好再填写例如:’–publish 443:443 –publish 8080:80 –publish 2222:22’
- –name gitlab 这里的gitlab是你的容器名,可以自己选择
配置Gitlab
等到gitlab启动之后,输入
1 | sudo docker exec -it gitlab /bin/bash |
进入对应的bash(如果前面自定义了容器名称记得修改gitlab为你自己定义的名字)
然后输入
1 | vi /etc/gitlab/gitlab.rb |
去修改配置文件
修改http相关配置
1 | # 配置http协议所使用的访问地址,不加端口号默认为80,有自己的域名在这里修改 |
配置邮箱服务
这里给出一份QQ邮箱的配置,网上其他教程在这里都有坑,最多的是把 ‘smtp_tls’ 服务和 ‘smtp_auto_starttls’ 服务同时设置为 ‘true’,这样会导致服务启动失败
1 | # 开始邮箱服务 |
更新配置
1 | gitlab-ctl reconfigure |
然后等一下就好了
验证邮箱配置是否成功
1 | gitlab-rails console -e production |
等他启动之后输入
1 | Notify.test_email('YOUR_QQ_EMAIL', 'Message Subject', 'Message Body').deliver_now |
如果他显示成功发送了邮件,那么就成功了
如果没有成功,并且显示sh: 1: /usr/sbin/sendmail: not found
可以考虑在bash中输入
1 | apt-get update |
安装对应服务
配置root账户
启动服务之后不要quit退出,在console里面输入
1 | user = User.where(id: 1).first |
new_password是你的密码,然后就可以quit退出了
去验证一下你的gitlab
在浏览器输入你的域名或者ip地址,如果你的配置正确,那么就会出现gitlab的登录界面,输入root账户和密码就可以登录了
配置cpolar做内网穿透
看官方教程cpolar官网教程,这里就不多说了
或者查看我另外一篇文章,自己部署frp服务器做内网穿透
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.