美文网首页
Docker 安装Gitlab

Docker 安装Gitlab

作者: 一二先生 | 来源:发表于2019-10-01 23:54 被阅读0次
    • 搜索相关Gitlab镜像,以免错过更好的第三方镜像

      docker search gitlab
      
    • 下载选定的Gitlab镜像,这里我们选择下载量最多的官方镜像,如果未指定版本则默认为最新版本,latest版本

      docker pull gitlab/gitlab-ce
      
    • 运行镜像

      docker run -d -p 80:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always --privileged=true gitlab/gitlab-ce
      

      容器启动后,会进行大量的初始化,尝试访问宿主机80端口,大约几分钟后会出现一个确认初始化root用户密码的界面,先输入初始化密码,之后回到容器这边,修改$PWD/gitlab/config/gitlab.rb文件,配置克隆地址等

      # 配置`http协议`的访问地址
      external_url 'http://192.168.1.113'
      
      # 配置ssh协议访问地址
      gitlab_rails['gitlab_ssh_host'] = '192.168.1.113'
      # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口
      gitlab_rails['gitlab_shell_ssh_port'] = 2222
      
    • 端口配置
      但在我们大多数的场景中可能没有80端口可以使用了,因此我们需要将gitlab设置为其他端口如8081

      docker run -d -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
      

      容器启动后,尝试访问宿主机8081端口,直到出现一个确认初始化root用户密码的界面(确认初始化完毕),之后修改$PWD/gitlab/config/gitlab.rb文件

      # 配置`http协议`的访问地址,端口为宿主机映射端口
      external_url 'http://192.168.1.113:8081'
      
      # 配置ssh协议访问地址
      gitlab_rails['gitlab_ssh_host'] = '192.168.1.113'
      # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口
      gitlab_rails['gitlab_shell_ssh_port'] = 2222
      

      由于gitlab将默认的端口更改为8081后,我们需要重新生成容器

      docker stop gitlab
      docker rm gitlab
      # 修改容器内的端口为8081
      docker run -d -p 8081:8081 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
      
    • HTTPS支持(同时也相当于做了一个端口转发配置,更改了默认端口)

      docker run -d -p 8443:443 -p 8081:80 -p 2222:22 -v $PWD/gitlab/config:/etc/gitlab -v $PWD/gitlab/logs:/var/log/gitlab -v $PWD/gitlab/data:/var/opt/gitlab --name gitlab --restart always gitlab/gitlab-ce
      

      容器启动后,尝试访问宿主机8081端口,直到出现一个确认初始化root用户密码的界面(确认初始化完毕),之后修改$PWD/gitlab/config/gitlab.rb文件

      # 配置`https协议`的访问地址,端口为宿主机映射端口
      external_url 'https://192.168.1.113:8443'
      
      # 配置ssh协议访问地址
      gitlab_rails['gitlab_ssh_host'] = '192.168.1.113'
      # 配置ssh协议访问端口,此端口是启动容器时宿主机22端口映射给容器的2222端口
      gitlab_rails['gitlab_shell_ssh_port'] = 2222
      
      # gitlab支持https是通过nginx实现的
      nginx['redirect_http_to_https'] = true
      nginx['redirect_http_to_https_port'] = 80
      nginx['listen_port'] = 443
      

      如果使用https模式git客户端需执行git config --global http.sslVerify false,否则克隆时会报错SSL certificate problem: self signed certificate

    • 用户配置(本地下载安装git客户端工具)

      • HTTP协议
        目录中右键,选择Git Bash Here,执行克隆代码

        # gitlab项目中的http协议克隆地址
        git clone https://192.168.1.113:8443/money/test.git
        

      系统会弹出用户名密码的输入框,输入正确的用户名密码后,系统会保存凭据(控制面板 -> 凭据管理器 -> window凭据)以方便后续的pull/push等操作

    • SSH协议
      目录中右键,选择Git Bash Here,生成密钥对,再通过将密钥的公钥与gitlab用户绑定,即可通过生成的密钥对中的存在于本地的私钥与gitlab服务器建立信任的通信,这样同一密钥对可向多个远程代码库建立信任的通信,同时也不需要多余的用户名密码等

      # 生成密钥对,-C代表注释内容,我这里使用的用户名
      ssh-keygen -t rsa -C root
      

      后面直接回车,但需注意密钥对生成的路径,一般情况为(与系统使用的用户相关):C:\Users\Administrator,进入密钥目录,复制公钥id_rsa.pub的内容;接着进入gitlab的web界面的用户 -> 设置 -> SSH Keys,添加复制的公钥内容;最后选择Git Bash Here,执行克隆代码

      git clone ssh://git@192.168.1.113:2222/money/test.git
      

      会让你确认是否建立连接,输入yes,在密钥对生成的路径中会多生成一个文件known_hosts,存储无需确认的连接信息

    相关文章

      网友评论

          本文标题:Docker 安装Gitlab

          本文链接:https://www.haomeiwen.com/subject/dqxuyctx.html