• docker环境搭建gitlab服务


    • 获取 docker 镜像

      docker pull gitlab/gitlab-ce:latest
      
      • 1
    • 宿主机上准备 3 个目录,和 docker 容器共享,用于存放 gitlab 的数据

      mkdir /home/tanrui/gitlab-server/config
      mkdir /home/tanrui/gitlab-server/logs
      mkdir /home/tanrui/gitlab-server/data
      
      • 1
      • 2
      • 3
    • 创建容器:

      docker run \
       -itd  \
       -p 9980:80 \
       -p 9922:22 \
       -v /home/tanrui/gitlab-server/config:/etc/gitlab \
       -v /home/tanrui/gitlab-server/logs:/var/log/gitlab \
       -v /home/tanrui/gitlab-server/data:/var/opt/gitlab \
       --restart always \
       --privileged=true \
       --name gitlab3 \
       gitlab/gitlab-ce:latest
       
       # -p 9980:80               宿主机的 9980 端口映射到 docker 的 80 端口
       # -v /home/tanrui/gitlab-server/config:/etc/gitlab
       #     宿主机的 /home/tanrui/gitlab-server/config    目录映射到 docker 的 /etc/gitlab
       # --restart always         容器自启动
       # --privileged=true        让容器获取宿主机root权限
       # --name gitlab            设置容器名称为gitlab
       # gitlab/gitlab-ce:latest  镜像的名称,这里也可以写镜像ID
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
    • 进入容器:

      docker exec -it gitlab /bin/bash
      
      • 1

      修改 gitlab 配置文件 /etc/gitlab/gitlab.rb

      external_url 'http://192.168.3.4'  # 宿主机的 ip,默认 80 端口
      
      ## ssh 默认22端口,可以用后文方法更改,主要是解决克隆工程
      #gitlab_rails['gitlab_ssh_host'] = '192.168.3.4'
      #gitlab_rails['gitlab_shell_ssh_port'] = 9922 
      
      • 1
      • 2
      • 3
      • 4
      • 5

      执行:

      gitlab-ctl reconfigure
      
      • 1

      网页上即可访问:http://192.168.3.4:9980

    • 修改 root 密码:

      # 进入容器内部
      docker exec -it gitlab /bin/bash
       
      # 进入控制台
      gitlab-rails console -e production
       
      # 查询id为1的用户,id为1的用户是超级管理员
      u = User.where(id:1).first
      # 修改密码为tr123456
      u.password='tr123456'
      # 保存
      u.save!   # !!!这里有感叹号
      # 退出
      exit
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    • 在页面中,克隆工程有 SSH 和 HTTP,克隆失败主要时端口映射的问题:例如 SSH,显示的 clone 地址是:git@192.168.3.4:root/first.git,默认是访问 22 端口,由于创建 docker 容器的时候指定了端口映射:主机 9922 >>> docker 22,所以要更改访问的端口:ssh://git@192.168.3.4:9922/root/first.git。HTTP 的 clone 一样会有问题。解决这个问题可以修改文件:/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

      gitlab:
          ## Web server settings (note: host is the FQDN, do not include http://)
          host: 192.168.3.4
          port: 9980        # http 的端口(和 docker 映射一致)
          https: false
          # ....
      	ssh_port: 9922    # ssh 的端口(和 docker 映射一致)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      修改后重启 gitlab-ctl restart,然后在页面上就可看见 clone 地址的变化。
      注意:不要 gitlab-ctl reconfigure !因为重新配置之后上面修改的会被冲掉!

  • 相关阅读:
    selenium上传文件时打开指定本地文件路径
    Web实例_报表开发01-基于HTML进行报表呈现
    JeeSite学习【一】创建模块
    国际版阿里云/腾讯云:阿里弹性云手机正式公测
    ubuntu中的系统消息中显卡显示llvmpipe (LLVM 10.0.0, 256 bits)
    linux内核printk的一些并发处理
    Golang 状态协程
    矢量绘图软件源码定制开发,类似visio绘图,大量复合图元模板,可编程动态控制图元
    浏览器中的原生base64方法
    mybatis学习笔记——mybatis-plus快速入门
  • 原文地址:https://blog.csdn.net/qq_33236581/article/details/126275729