Gitlab系列(1)—— Gitlab环境搭建

Gitlab环境搭建

      • 安装Gitlab
      • 配置邮箱

安装Gitlab

  1. 设置环境变量
export GITLAB_HOME=/srv/gitlab
  1. 编写docker-compose.yml
[root@origin ~]# mkdir -p /opt/docker-compose/gitlab
[root@origin ~]# vim /opt/docker-compose/gitlab/docker-compose.yml
version: '3.8'
services:
  gitlab:
    hostname: 'abc.efg.xyz'
    image: 'gitlab/gitlab-ce:14.2.4-ce.0'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://abc.efg.xyz:9080'
        gitlab_rails['gitlab_shell_ssh_port'] = 9022
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
    ports:
      - '9080:9080'
      - '9443:443'
      - '9022:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
  1. 启动Gitlab
[root@origin gitlab]# docker-compose up -d
  1. 启动成功
    Gitlab系列(1)—— Gitlab环境搭建_第1张图片
    【注意】新版本的Gitlab,在首次登录时不会提示设置root密码了,初始密码在 /etc/gitlab/initial_root_password,根据映射规则,该文件映射到宿主机上的 /srv/gitlab/config/initial_root_password
[root@origin ~]# cat /srv/gitlab/config/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: 1fBcwYj2Qbf5yyZubJJj51KH2T3BPvl02MoBAOiyiWc=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
  1. 登录root用户
    Gitlab系列(1)—— Gitlab环境搭建_第2张图片
    登录成功,建议先设置密码。
  2. HTTP导出项目
    Gitlab系列(1)—— Gitlab环境搭建_第3张图片
    第一次访问仓库,需输入密码,可以选择将密码缓存到本地,否则每次操作都需要密码
    成功导出
    Gitlab系列(1)—— Gitlab环境搭建_第4张图片
  3. SSH 免密导出项目
  • 生成密钥对
$ ssh-keygen.exe -t rsa -C "kal" -f kal_id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in kal_id_rsa.
Your public key has been saved in kal_id_rsa.pub.
The key fingerprint is:
SHA256:3f2nJxYnGOwDfjfqXptsVIO2aK6q1bchndVBUYEslk0 kal
The key's randomart image is:
+---[RSA 2048]----+
|            =E.+=|
|           + +.  |
|          ... .. |
|         ...o+..o|
|        S..o++oo.|
|        . ooB.*..|
|       . oo* =.=o|
|      .   o.+o++o|
|     ......+oo=o |
+----[SHA256]-----+
  • 仓库配置公钥
    Gitlab系列(1)—— Gitlab环境搭建_第5张图片
  • 测试ssh连接
$ ssh -T -p 9022 [email protected]
Welcome to GitLab, @root!
  • ssh导出项目
    Gitlab系列(1)—— Gitlab环境搭建_第6张图片

配置邮箱

Gitlab配置邮箱是一个比较常用的配置项,这里做个简单的介绍,其他配置项可参考官方文档
这里以QQ邮箱为例
Gitlab大部分配置都在 /etc/gitlab/gitlab.rb 这个文件里面
基于前面的映射规则,可以在宿主机中找到这个文件
/srv/gitlab/config/gitlab.rb

  • 修改配置
  gitlab_rails['smtp_enable'] = true
  gitlab_rails['smtp_address'] = "smtp.qq.com"
  gitlab_rails['smtp_port'] = 465
  gitlab_rails['smtp_user_name'] = "[email protected]"
  gitlab_rails['smtp_password'] = "密码或授权码"
  gitlab_rails['smtp_authentication'] = "login"
  gitlab_rails['smtp_enable_starttls_auto'] = true
  gitlab_rails['smtp_tls'] = true
  gitlab_rails['gitlab_email_from'] = '[email protected]'
  gitlab_rails['smtp_domain'] = "mail.qq.com"
  • 重新配置Gitlab
    这里建议进容器内执行 gitlab-ctl reconfigure ,如果重启容器的话会比较耽搁时间。。。
  • 设置管理员邮箱
    Gitlab系列(1)—— Gitlab环境搭建_第7张图片
    设置过后,不出意外邮箱会收到一封邮件,用于确认这个邮箱。
    Gitlab系列(1)—— Gitlab环境搭建_第8张图片
    在这里插入图片描述
  • 确认后,可以看到这个这个邮箱已经变成已验证的状态
    接下来就可以设置系统的邮箱了
    Gitlab系列(1)—— Gitlab环境搭建_第9张图片
  • 为了测试邮件通知,我们还需要注册一个用户,这里直接使用管理员添加一个账户,用户直接去邮箱认证即可
    将用户邮箱添加至通知列表
    Gitlab系列(1)—— Gitlab环境搭建_第10张图片
  • 执行push操作
    Gitlab系列(1)—— Gitlab环境搭建_第11张图片
    成功收到邮件
  • 其他常用配置
    关闭 Gravatar 头像
    Gitlab系列(1)—— Gitlab环境搭建_第12张图片
    关闭用户注册
    Gitlab系列(1)—— Gitlab环境搭建_第13张图片
    后续会将以前的零散知识点整理出来

你可能感兴趣的:(Gitlab,docker,gitlab)