Docker安装gitlab

Title Docker安装gitlab
Framework Docker
User wy8817399@vip.qq.com
Id 97
Created 10/1/26, 1:36 AM
Modified 10/4/26, 3:35 AM
Published Yes
Content

1、创建Docker目录

sudo mkdir /Docker

 

2、创建docker-compose.yml文件

services:
  gitlab:
    image: gitlab/gitlab-ce:latest   # 上服务器时建议固定版本号,如 gitlab/gitlab-ce:17.11.0-ce.0
    container_name: gitlab
    restart: unless-stopped
    hostname: gitlab.leon            # 测试域名,宿主机 hosts 里加一条指向虚拟机 IP
    shm_size: 256m
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        ########################################################################
        # 【访问地址】GitLab 对外暴露的完整 URL
        # 决定页面上显示的 clone 地址、webhook 回调地址;http 还是 https 也由它决定
        # 测试期用 http://gitlab.local(宿主机 hosts 绑定虚拟机 IP)
        # 上服务器有域名后改成 'https://gitlab.你的域名.com'
        ########################################################################
        external_url 'http://gitlab.leon'

        ########################################################################
        # 【SSH 端口】容器内 gitlab-shell 走 22,但宿主机 22 被 docker 映射成 2222
        # 此参数让页面上显示的 SSH clone 地址自动带上 2222 端口
        # 效果:ssh://git@gitlab.local:2222/组名/仓库.git
        ########################################################################
        gitlab_rails['gitlab_shell_ssh_port'] = 2222

        ########################################################################
        # 【时区】影响界面时间显示和日志时间戳,统一成东八区
        ########################################################################
        gitlab_rails['time_zone'] = 'Asia/Shanghai'

        #=======================================================================
        # 以下为【可选功能】,需要时取消注释即可(改完 docker compose up -d 生效)
        #=======================================================================

        #-----------------------------------------------------------------------
        # 【内置监控栈】GitLab 自带的 Prometheus + Grafana + Alertmanager 等
        # 监控对象是 GitLab 自身健康度(队列延迟、DB 连接、Sidekiq 堆积),不监控业务
        # 默认关闭省约 1G 内存;想看 GitLab 运行指标时取消下行注释
        #-----------------------------------------------------------------------
        # prometheus_monitoring['enable'] = true

        #-----------------------------------------------------------------------
        # 【HTTPS 证书】external_url 写 https 时使用,自动向 Let's Encrypt 申请
        # 前提:域名公网可达、80/443 端口开放。测试期不用开
        #-----------------------------------------------------------------------
        # letsencrypt['enable'] = true
        # letsencrypt['contact_emails'] = ['你的邮箱@example.com']

        #-----------------------------------------------------------------------
        # 【HTTPS 手动证书】如果用自己买的证书(非 Let's Encrypt),放这里
        # 上服务器后二选一:要么 letsencrypt 自动签,要么手动指定证书路径
        #-----------------------------------------------------------------------
        # nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.crt'
        # nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.key'

        #-----------------------------------------------------------------------
        # 【邮件】GitLab 发通知邮件(找回密码、CI 结果、成员邀请)用的 SMTP
        # 不配则这些邮件一律发不出去;用 QQ/163 邮箱开 SMTP 即可
        #-----------------------------------------------------------------------
        # gitlab_rails['smtp_enable'] = true
        # gitlab_rails['smtp_address'] = 'smtp.qq.com'
        # gitlab_rails['smtp_port'] = 465
        # gitlab_rails['smtp_user_name'] = '你的邮箱@qq.com'
        # gitlab_rails['smtp_password'] = 'SMTP授权码(不是邮箱密码)'
        # gitlab_rails['smtp_domain'] = 'smtp.qq.com'
        # gitlab_rails['smtp_authentication'] = 'login'
        # gitlab_rails['smtp_enable_starttls_auto'] = false
        # gitlab_rails['smtp_tls'] = true
        # gitlab_rails['gitlab_email_from'] = '你的邮箱@qq.com'
        # gitlab_rails['gitlab_email_display_name'] = 'GitLab'

        #-----------------------------------------------------------------------
        # 【备份】自动备份配置
        # backup_keep_time:备份文件保留秒数,604800 = 7 天
        # 备份目录:./gitlab/data/backups/(随 data 卷一起持久化)
        # 手动触发备份命令:docker exec gitlab gitlab-backup create
        # 恢复命令:docker exec gitlab gitlab-backup restore BACKUP=备份文件时间戳
        #-----------------------------------------------------------------------
        gitlab_rails['backup_keep_time'] = 604800

        #-----------------------------------------------------------------------
        # 【注册开关】是否允许任何人自行注册账号
        # 测试期和上线后都建议关掉,账号由管理员在后台创建
        #-----------------------------------------------------------------------
        # gitlab_rails['gitlab_signup_enabled'] = false

        #-----------------------------------------------------------------------
        # 【HTTPS 强制跳转】external_url 是 https 时,http 进来的请求是否 301 到 https
        #-----------------------------------------------------------------------
        # nginx['redirect_http_to_https'] = true

        #-----------------------------------------------------------------------
        # 【性能调优】并发 worker 数,默认按内存自动计算
        # 小内存机器(如 4G)可手动调低缓解内存压力;16G 不用动
        #-----------------------------------------------------------------------
        # puma['worker_processes'] = 2
        # sidekiq['concurrency'] = 10
    ports:
      - "80:80"
      - "443:443"
      - "2222:22"                     # 刻意避开宿主机 22
    volumes:
      - ./gitlab/config:/etc/gitlab
      - ./gitlab/logs:/var/log/gitlab
      - ./gitlab/data:/var/opt/gitlab
    networks:
      - timeless
      
networks:
  timeless:
    name: timeless
    driver: bridge

 

4、获取密码(默认帐号root)

docker exec gitlab cat /etc/gitlab/initial_root_password

 

5、本地网络配置hosts

将gitlab.leon 映射到安装gitlab的服务器ip
192.168.20.140    gitlab.leon

 

5、web浏览器访问

http://gitlab.leon/