• 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 !因为重新配置之后上面修改的会被冲掉!

  • 相关阅读:
    Python的异常处理机制 ​
    Vscode禁止插件自动更新
    oracle学习16-命令学习4
    swiper第一个、最后一个滑块按钮disabled时(.swiper-button-disabled),点击触发下层点击事件的问题
    荔枝派zero驱动开发06:GPIO操作(platform框架)
    开环零点与闭环零点对系统的影响
    Tomcat部署本地和服务器Springboot和Vue项目
    设计模式-责任链模式
    如何通过进程启动来分析和解决EasyCVR内核端口报错问题?
    从中序与后序遍历序列构造二叉树
  • 原文地址:https://blog.csdn.net/qq_33236581/article/details/126275729