小哥之哥 小哥之哥
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小哥之哥

运维扫地僧
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Kubertenes

  • Prometheus

  • Docker

    • Docker实战

      • Docker 部署Confluence15.2
      • Docker 部署Jira8.1.0
      • Docker 部署Gitlab11.10.4
      • Docker 部署ELK6.6
      • Docker 部署ELK之Sentinl日志报警
      • Docker 部署MySQL5.7.20
      • Apollo分布式Docker部署
      • Docker部署Gitlab 16.2.0
        • Docker部署zookeeper3.6集群
        • Docker部署kafka3.4集群
        • Docker 部署Redis6.2.6
        • Docker构建多架构镜像
      • Docker杂谈

    • 数据库

    • 运维利器

    • 运维
    • Docker
    • Docker实战
    tchua
    2023-07-27
    目录

    Docker部署Gitlab 16.2.0

    # 一、前言


    GitLab 是一个用于托管 Git 代码仓库并实现源代码管理的开源代码托管平台。它提供了一套强大的工具和功能,用于团队协作开发、持续集成/持续交付 (CI/CD)、缺陷跟踪、代码审查、Wiki、部署和版本控制等。

    GitLab 有两个版本可供选择:GitLab Community Edition (CE) 和 GitLab Enterprise Edition (EE)。GitLab CE 是开源的免费版本,可以在本地部署和使用。GitLab EE 是付费版本,提供了更多高级功能和支持服务

    GitLab 已经成为大多数企业中的代码托管平台,广泛应用于各种规模的团队和组织,帮助开发者更好地协作、管理和交付软件项目。

    # 二、安装


    # 2.1 镜像下载

    更多镜像访问官方Gitlab镜像地址 (opens new window)

    docker pull gitlab/gitlab-ce:16.2.0-ce.0
    
    1
    # 2.2 启动
    docker run -d \
         -p 18443:443 \
         -p 18080:18080 \
         -p 18022:22 \
         --name gitlab \
         --restart always \
         -v /opt/gitlab/config:/etc/gitlab \
         -v /opt/gitlab/logs:/var/log/gitlab \
         -v /opt/gitlab/data:/var/opt/gitlab \
         gitlab/gitlab-ce:16.2.0-ce.0
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    • 端口映射说明

    这里容器端口写的18080,其实容器默认的是80,我们后面会修改默认端口,所以这里直接映射修改后的,否则访问会出问题

    宿主机端口 容器端口 作用
    18443 443 将容器内443端口映射至宿主机18443端口,使用https访问时使用
    18080 18080 将容器内18080端口映射至宿主机18080端口,使用http访问时使用
    18022 22 将容器内22端口映射至宿主机18022端口,使用ssh协议访问时使用
    • 数据目录映射说明
    宿主机目录 容器目录 作用
    /opt/gitlab/config /etc/gitlab 用于存储 GitLab 配置文件
    /opt/gitlab/logs /var/log/gitlab 用于存储日志
    /opt/gitlab/data /var/opt/gitlab 用于存储应用数据
    # 2.3 配置Gitlab访问地址

    docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码

    # vim /opt/gitlab/config/gitlab.rb
    ### 取消external_url注释,地址为宿主机地址或者配置域名,我这里为了方便设置域名访问
    #### 这里地址加上端口后 重新加载配置后会设置改端口为应该端口,对应上面的18080,把端口配置是为了仓库地址可以完整的显示访问地址信息
    external_url 'http://gitlab.tbchip.com:18080'
    
    ### 取消注释,这个是pull/push使用ssh协议时的端口 
    gitlab_rails['gitlab_shell_ssh_port'] = 18022
        
    ## 重载服务 重载之后会把一些配置同步至/opt/gitlab/data/gitlab-rails/etc/gitlab.yml此文件中
    docker exec -t gitlab gitlab-ctl reconfigure
    docker exec -t gitlab gitlab-ctl restart
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 2.4 默认密码

    不知道从哪个版本开始,当我们部署好后,第一次访问会不再要求我们设置root密码,而是要从日志中获取

    docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    
    1
    # 2.5 访问

    浏览器只是输入external_url所配置的地址即可,然后默认用户为root,密码为上面所获取的密码。

    image-20230727105434406

    # 2.6 配置邮箱

    gitlab在实际工作使用中,在admin新开账号时,会自动给新账号绑定的邮箱发送通知邮件,点击邮件中的链接进行激活,首次登陆gitlab会进行密码设置

    # vim /opt/gitlab/config/gitlab.rb
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "***@losinx.com"
    gitlab_rails['smtp_password'] = "***"
    gitlab_rails['smtp_domain'] = "losinx.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['gitlab_email_from'] = '***@losinx.com'
    
    # 重载服务
    docker exec -t gitlab gitlab-ctl reconfigure
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    • 邮箱测试
    [root@iZbp1ig4xiwqs6cqyf6ilsZ ~]# docker exec -it gitlab /bin/bash
    root@0f86f871beeb:/# gitlab-rails console
    irb(main):002:0> Notify.test_email('***@163.com', 'Message Subject', 'Message Body').deliver_now
    
    ### 邮件说明
    Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
    
    1
    2
    3
    4
    5
    6

    以上配置之后,当我们再创建用户时指定用户邮箱,会给指定邮箱发送确认链接,点击配置密码及个人信息即可。

    编辑 (opens new window)
    #Docker
    上次更新: 2023/07/31, 11:42:36
    Apollo分布式Docker部署
    Docker部署zookeeper3.6集群

    ← Apollo分布式Docker部署 Docker部署zookeeper3.6集群→

    最近更新
    01
    cert-manager自动签发Lets Encrypt
    09-05
    02
    Docker构建多架构镜像
    08-02
    03
    Prometheus数据迁移至VMstorage
    08-01
    更多文章>
    Theme by Vdoing | Copyright © 2023-2024 |豫ICP备2021026650号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式