使用Docker在局域网安装GitLab,并且开启邮箱、添加备案信息等

本文章介绍如何使用Docker安装Gitlab,并且包含开启邮箱服务、添加备案信息等

1. 安装GitLab

最近想在本地创建一个GitLab仓库,简单记录一下:

  1. 简单设置一个GitLab信息的存储目录
export GITLAB_HOME=/etc/docker/gitlab/ && mkdir -p $GITLAB_HOME
  1. docker中启动
  # 访问的地址可以是:
  # IP+端口:通过「IP+端口」访问主页
  # 仅IP:通过「IP+80端口」访问
  # 域名:若是放在公网上(或内网穿透后)可以使用该ip进行访问
  sudo docker run --detach \
  --hostname 192.168.1.2 \
  --publish 443:443 --publish 80:80 --publish 23:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest

IP的设置有很多方式,可以试着+三级域名来实现,比如DNS解析、frp内穿自带的三级域名功能等…

  1. 启动成功后,访问刚才设置的IP可以进入GitLab主页

需要注意的是,GitLab需要启动的东西很多,占用的资源比较多,所以一开始访问的时候可能是下面这样显示「502:We’re sorry. GitLab is taking too much time to respond.」字样,这只是GitLab还没完全启动完成,安心等待即可。

若是什么都访问不到,可以尝试使用:

docker ps -a
docker logs -f continer_name

来查看启动状态、查看日志等内容,其他操作自行尝试。

启动成功后再次登录,会进入一个登录界面,初始用户名是root,初始密码是一串很长的随机数,在Linux下执行下面的命令获取初始密码:

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

在这里插入图片描述
将改密码输入到Gitlab的登录密码框里,用户名写root,即可登陆成功。

备案信息演示




2. 配置邮件服务

2.1 配置邮箱

发送通知邮件,邮件服务就是你注册成功或者有合并请求的时候会给你发送邮件,告诉你一些相关的信息。
可以不配置,非必须。

– 以163邮箱为例 –

## 进入目录并编辑配置文件
cd $GITLAB_HOME/config/
vim gitlab.rb 

## 在文件中插入或修改以下内容
external_url 'http://XXXXX.com' 
gitlab_rails['smtp_enable'] = true  
gitlab_rails['smtp_address'] = "smtp.163.com"  
gitlab_rails['smtp_port'] = 25  
gitlab_rails['smtp_user_name'] = "xxuser@163.com"  
gitlab_rails['smtp_password'] = "xxpassword"  
gitlab_rails['smtp_domain'] = "163.com"  
gitlab_rails['smtp_authentication'] = :login  
gitlab_rails['smtp_enable_starttls_auto'] = true  
gitlab_rails['gitlab_email_from'] = "xxuser@163.com"  
user["git_user_email"] = "xxuser@163.com" 
gitlab_rails['gitlab_email_display_name'] = '发件人名称'

「邮箱授权码」可以去邮箱那里去申请,各种邮箱也是一样的,只不过不同的邮箱(如163、gmail)等需要修改smtp_domain、端口等信息。
最后一个[发件人名称],是你收到邮件时候显示的名称,比如我设置成Jim@Git后,收到邮件是如下这个样子的:

请添加图片描述

2.2 重启Docker容器

docker restart gitlab

## 2.3 验证电子邮箱 修改个人账号的邮箱信息 - 依次进入`[点击左上角头像] - [偏好设置] - [电子邮箱] -[添加电子邮箱]`,给自己添加一个电子邮箱。 - 此时你添加的这个邮箱将会收到一个来自你上面配置的邮箱的邮件,如果没有请检查自己的配置文件是否有写错,或者是否重启过项目了 - 点击收到的邮件中的链接,验证一下电子邮件,随后重新回到浏览器,在Gitlab上依次点击 `[左上角头像] -[偏好设置] - [用户资料] - [电子邮件]`可以将“提交邮件”与“电子邮箱”设置为刚才收邮件的邮箱。




3. 添加备案信息

Gitlab并没有提供官方的设置,但是如果要将网站放在公网上的话,一般要在页脚加上备案信息(且最好关闭注册功能)
Gitlab添加备案信息的方式如下:

中心思想很简单:编辑或者替换掉容器里的一个文件,首先看编辑的方式:

3.1 编辑文件的方式实现(比较麻烦,需要在容器内编辑文件)

  1. 进入容器
docker exec -it gitlab bash
  1. 进入下面的目录
cd /opt/gitlab/embedded/service/gitlab-rails/app/views/devise/shared
  1. 编辑_footer.html.haml文件,做以下修改
.footer-container.gl-w-full.gl-align-self-end
  %hr.gl-m-0
  .container.gl-py-5.gl-display-flex.gl-justify-content-space-between
    .gl-display-flex.gl-gap-5.gl-flex-wrap
      - unless public_visibility_restricted?
        = link_to _("Explore"), explore_root_path
        = link_to _("Help"), help_path
      = link_to _("把你的备案号写在这里(只要修改这一个地方)"), "http://beian.miit.gov.cn/",target:'_blank',class:'text-nowrap',rel:'noopener noreferrer'
    = render 'devise/shared/language_switcher'
= footer_message

3.2 在本地编辑拷贝进容器的方式

  1. 在本地创建一个这样的文件,拷贝上面的代码,填写进去备案号
  2. 将文件拷贝到服务器中,随便某个目录下,然后在该目录下执行下面的命令
docker cp _footer.html.haml gitlab:/opt/gitlab/embedded/service/gitlab-rails/app/views/devise/shared

^^ 直接执行这个命令就可以

请注意,为了避免麻烦,导致容器出现问题,请在修改或替换前备份该文件。


3.3 备份原配置文件

  1. 进入容器
docker exec -it gitlab bash
cp /opt/gitlab/embedded/service/gitlab-rails/app/views/devise/shared/_footer.html.haml  /opt/gitlab/embedded/service/gitlab-rails/app/views/devise/shared/_footer.html.haml.bak

不用重启容器,刷新页面,备案信息就出现在页脚啦~
如下图所示:请添加图片描述

4. 关闭流水线

流水线功能,说实在的我一直用不着,但是我每次创建项目之后,隔三差五就会给我发个邮件,告诉我流水线错误,所以索性直接关闭了吧!
编辑/etc/docker/gitlab/config/gitlab.rb文件,添加如下内容

gitlab_rails['gitlab_default_projects_features_builds'] = false

重启项目,之后创建的所有项目默认是关闭流水线的,但是之前的项目不受影响,只能在项目中手动关闭,关闭方式如下:
依次进入项目-[设置]-[通用]-[可见性,项目功能,权限(展开)]关闭项目流水线,每次只能为一个项目关闭流水线(项目多的可就难受了)。




5. 将网站映射到公网

读到这里可以先看一下我的另一篇博客【通过Docker+frp实现内网穿透】,了解下怎么做内网穿透。

在这里只说几个注意事项,剩下的主要内容其实都在上面那篇博客里:

  1. 443端口不用映射出去,除非你要做ssl(也就是https)
  2. frp在服务器端的http端口最好是80,否则你要做隐形解析才能访问到网站
  3. Gitlab有个22端口,通过ssh进行clone/push,这个端口就保持不动,通过容器的22-宿主机的22-frpc映射宿主机的22端口-云服务器的22,(这种情况下需要将宿主机的ssh端口与云服务的ssh端口都修改了),但是宿主机的22端口其实可以换成其他的,改掉相应的frpc配置就可以。不过,我尝试将它们都修改掉,都不用22端口,其中包括Gitlab配置容器端口容器-宿主机映射端口宿主机端口云服务端口,再通过frp映射出来(以上红字我全部修改了,只为了保留下所有操作系统的22端口),但是失败了,有动手能力强的可以试试解决下,我想了很多方案,头都快秃了,理论上来说是没有问题的,但是还是失败了,交给你们了。
  4. 如果3中的配置失败了,那么你只能通过git clone http://.....的方式进行克隆,而不能使用git git@git...的方式进行克隆,虽然不影响使用但是有点碍眼,推荐使用我说的所有端口都是22的方式进行部署。

6. 注意事项!!

6.1 部署时注意存储空间大小

这一件事情单独拎出来作为一个单元,因为它真的很重要,我就遇到了
我们前面启动Gitlab的时候,有一个存放配置文件的目录,前文中使用的一直都是/etc/docker/gitlab,但是对于Linux来讲,/etc目录可能很小,记得挑选一个空间足够大的地方来存储Gitlab,否则当这一块存储空间(类似于Windows的磁盘)满了之后,Gitlab就会502。

查看空间大小

在Linux中执行以下命令,查看各个空间的大小:

df -lh

在这里插入图片描述
或者在该命令后面加上路径,查看该路径所在分区的空间大小,如下:

df -lh /home

在这里插入图片描述
可以看到这一块空间还有209G可用,我就把Gitlab的配置内容放在这里咯。

如果存储空间满了,可以尝试docker save/docker load方式保存应用后拷贝到其他地方并重新开发应用,记得拷贝所有的配置文件(文章中多次提到的从容器中映射出来的/etc/docker/gitlab文件夹下的所有内容)。

另外还有一件事情需要注意,Ubuntu Server安装后默认只会使用50%的空间,这是什么鬼设定,气死我了,后面出教程如何搞定,到时候链接附在这里。




7. 后记

写到这里就结束了,其实从最开始的部署,到后面的每一个大标题,都是一次次的修改出来的,总感觉不太满意,就继续改继续改,最终成了这个样子。
另外,本来还想写一点“Gitlab的设置”的,但是那些就自己琢磨吧,我想部署Gitlab的人,肯定有一部分人是奔着学习去的吧,什么更改语言、个性化等,后面都会遇到。

再说一个小技巧,新版本的Gitlab与Github一样,有网页编辑器,在随便某个项目下点击键盘上的按钮,可以打开,效果如下:

请添加图片描述

注意:在网页上编辑的内容用ctrl+s是无法保存的,必须得点左侧第三个按钮提交才可以。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用docker-compose安装GitLab,需要按照以下步骤进行操作: 1. 下载GitLab镜像: 使用以下命令下载GitLab社区版镜像: ``` docker pull gitlab/gitlab-ce:latest ``` 2. 创建docker-compose.yaml文件并进行配置: 创建一个docker-compose.yaml文件,并在其中配置GitLab的相关信息。下面是一个示例配置: ``` version: '3.6' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'www.mygitlab.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.182.110:30080' # 添加其他gitlab.rb配置,每行一个 ports: - '30080:30080' - '30443:443' - '30022:22' volumes: - './config:/etc/gitlab' - './logs:/var/log/gitlab' - './data:/var/opt/gitlab' shm_size: '256m' ``` 3. 执行部署: 使用以下命令执行部署: ``` docker-compose -f docker-compose.yml up -d ``` 4. 检查部署状态: 使用以下命令检查GitLab的部署状态: ``` docker-compose -f<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [通过 docker-compose 快速部署 gitlab](https://blog.csdn.net/qq_35745940/article/details/130188203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值