美文网首页
gitlab私有化部署

gitlab私有化部署

作者: wangfeiq | 来源:发表于2022-01-23 09:15 被阅读0次
    1. 生成证书
      参考 https://www.jianshu.com/p/1163d1ae8029
    2. 创建数据目录
      mkdir /gitlab
      cd gitlab; mkdir data config logs
    3. 容器化启动gitlab
    docker run -tid \
     --hostname gitlab.example.cn \  // 此处为访问的域名,也可以填写IP地址,也可以不填。如果有多个容器在同一个子网中,则容器间可以通过hostname互通。
     -p 443:443 \
     -p 80:80 \
     -p 22:22 \
     --name gitlab \
     --restart always\
     -v /gitlab/config:/etc/gitlab \
     -v /gitlab/logs:/var/log/gitlab \
     -v /gitlab/data:/var/opt/gitlab \
     gitlab/gitlab-ce:latest
    

    注: 上面的端口号映射,建议内外端口号一致。如果不一致,可能会导致webhook触发不可用。
    例如,如果端口映射为-p 8080:80,并在gitlab中配置了webhook地址,指定push事件触发。提交代码后gitlab会向webhook地址发送一条消息,并带上相关的push事件内容,内容中包含了提交的分支相关的信息,此时的端口号为80端口,因为gitlab看到的自己的服务端口为80端口,此时webhook服务到80端口拉取代码时就会失败。因为实际上host对外提供的服务是8080端口。当然,也可以修改gitlab.rb配置文件,修改gitlab的服务端口为8080,然后端口映射为8080:8080,避免占用主机的80端口。

    默认的用户名为root, 密码位于容器内的:/etc/gitlab/initial_root_password文件下。登陆后可以在右上角的个人Preference处修改密码。可以使用该账号创建其他账户。

    配置webook的报错解决: 报错“requests to local network are not allowed.”,需要使用管理账号登陆,将webhook的地址或者IP填入下面位置。


    image.png

    域名解析配置: 只需要在容器内/etc/hosts中配置域名解析,无需在主机上配置。

    1. 配置证书
      拷贝步骤1生成的证书到配置文件目录下。
      mkdir /gitlab/config/ssl; cp xxx.key xxx.crt /gitlab/config/ssl
      编辑/gitlab/config/gitlab.rb文件,修改以下内容
    external_url 'https://gitlab.example.cn'
    nginx['redirect_http_to_https'] = true
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/xxx.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/xxx.key"
    
    1. 重新配置gitlab
      docker exec gitlab gitlab-ctl reconfigure
    2. 前端访问gitlab
      如果配置了域名,需要配置域名解析;如果是IP,则直接访问IP即可。如果要使用https访问,则需要将ca.crt证书加入到系统的根证书中。
    3. 最后,如果你想只允许用户使用https访问,可以参考下面的文章配置一个nginx反向代理。

    参考

    https://www.jianshu.com/p/aa307ee95442

    相关文章

      网友评论

          本文标题:gitlab私有化部署

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