文章目录

  • 前期准备
  • 安装部署
  • 拉取Gitlab镜像文件
  • 创建容器挂在卷轴目录
  • 运行镜像
  • 修改配置文件
  • 重启容器
  • 使用说明
  • 初次登陆
  • 更改语言模式
  • 创建新用户
  • 邮件转发服务
  • 总结


前期准备

准备一台CentOS7.8+以上版本的服务器(标配2核4G),建议是云服务器,如果条件不允许,可是使用虚拟机安装,共享个人PC配置,还是可以解决的,后面只要考虑穿透出去即可。因为2核4G的服务器年费还是很贵的。

  • CentOS7.8+以上版本的服务器
# 阿里云盘(下载速度还是很快的)这里包含虚拟机软件和CentOS7.8的镜像,具体安装可以自行百度
# 安装完成后记得开放SSH 22 ,基本默认打开的,最好检查一下
https://www.aliyundrive.com/s/3ZCoPDFchkQ
  • docker安装与部署
  • 部署画布(Portainer.io,主要用于镜像管理的,纯当工具使用即可)Portainer.io
  • 获取个人邮箱STMP授权码(可以选做)

安装部署

前期准备已经全部搞定之后

拉取Gitlab镜像文件

# 拉取镜像
docker pull gitlab/gitlab-ce
# 查看镜像文件
docker images

创建容器挂在卷轴目录

mkdir /dockers/srv/gitlab/{config,logs,data}

注意:这个目录是我的目录,可以自行创建,但是docker run中挂在卷轴的时候,注意切换

运行镜像

docker run --detach \
    --hostname 本机IP地址 \
    --publish 端口1:443 --publish 端口2:80 --publish 端口3:22 \
    --name gitlab \
    --restart always \
    --volume /dockers/srv/gitlab/config:/etc/gitlab \
    --volume /dockers/srv/gitlab/logs:/var/log/gitlab \
    --volume /dockers/srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest
  • 本机IP地址替换自己的
  • 端口1,端口2,端口3 是运行容器时候需要开放的端口,端口不能被占用,如果防火墙打开的,需要添加开放端口
# 检查端口占用情况
lsof -i: 端口号
# 开启
systemctl start firewalld.service
# 关闭
systemctl stop firewalld.service
# 防火墙状态
firewall-cmd --state
# 开放5672端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent   
#关闭5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent  
# 配置立即生效
firewall-cmd --reload
  • restart always ,开机重启docker容器
  • detach,容器后台运行

运行成功可以使用:docker ps -a 查看,获取使用画布工具查看

这里需要注意的时候,gitlab启动是非常慢的,因为加载的组件太多了,我看了日志,它的镜像文件差不多是2个多G,它需要的内部服务组件还是很多的。

群辉上gitlab gitlab 群晖_群辉上gitlab

修改配置文件

# 容器的主要配置文件就在gitlab.rb文件里面,一般容器启动,会自动从容器中同步到宿主机里面
vim /dockers/srv/gitlab/config/gitlab.rb

# 使用查找的方法,更改一下配置
gitlab_rails['gitlab_shell_ssh_port'] = 端口3
external_url 'http://本机IP地址'
# 添加邮件转发服务,这里怎么获取,可以百度
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "yourname@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "yourname@qq.com"

重启容器

修改完文件后,我们需要同步一下配置

# 进入gitlab bash
docker exec -it gitlab bash    
# 重新应用gitlab的配置 执行非常慢 不要关注报错内容
gitlab-ctl reconfigure
# 重启gitlab服务 
gitlab-ctl restart
# 查看gitlab运行状态
gitlab-ctl status

重启服务的过成功,不要做任何操作,只要等待即可

群辉上gitlab gitlab 群晖_运维_02


如果没有启动完成,你方位http://本机IP地址:端口2 就会出现这个页面

群辉上gitlab gitlab 群晖_git_03


做个安静的美男子,稍微等一下,看到502基本成功一半了,但是要时刻关注内存使用情况

free -m

使用说明

初次登陆

默认用户是root
我们需要获取密码

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

群辉上gitlab gitlab 群晖_docker_04

更改语言模式

由于我这里已经设置了语言模式

群辉上gitlab gitlab 群晖_容器_05


群辉上gitlab gitlab 群晖_容器_06


如果觉得登录密码太复杂,可以修改root密码

创建新用户

群辉上gitlab gitlab 群晖_运维_07


群辉上gitlab gitlab 群晖_git_08

创建成功,需要root用户去审核

群辉上gitlab gitlab 群晖_docker_09


群辉上gitlab gitlab 群晖_运维_10


群辉上gitlab gitlab 群晖_git_11

邮件转发服务

这个功能我没成功,但是我看网上有人成功了,我尝试编辑个人资料然后保存,但是没有发送邮件。。。
我估计要使用QQ邮箱,因为我用的163的企业邮箱,估计网易的465端口已经关闭或者邮箱服务地址不能用了。

总结

以上就是安装全部过程,其实并不难搞,难搞的就是后面的功能问题

  • SSH代码链接不被许可

    这个没有解决
  • HTTP下载倒是可以,但是存在一个问题,就是端口被默认为80端口了假如我们的端口2设置的非80端口,这个就需要自己手动去加了
  • 邮件转发不成功,这个问题,我们验证是网易的问题,那个STMP邮箱端口已经停用了465
    总之本次安装只是成功一半,服务基本可以用了,还有个性化设置里面并不是全局设置,需要每个用户自定义去配置。审批环节是可以关闭的。