美文网首页
Docker下搭建GitLab

Docker下搭建GitLab

作者: 0969127 | 来源:发表于2019-11-08 17:14 被阅读0次

    一、安装配置

    1.gitlab镜像拉取

    # gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
    $ docker pull gitlab/gitlab-ce
    

    2.运行gitlab镜像

     $ docker run -d -p 443:443 -p 8081:8081 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
    # -d:后台运行
    # -p:将容器内部端口向外映射
    # --name:命名容器名称
    # -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
    

    运行成功后出现一串字符串,运行成功

    3.配置

    按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(宿主机路径:/home/gitlab/config/gitlab.rb)。

    ①编辑gitlab.rb文件

    # gitlab.rb文件内容默认全是注释
    $ vim /home/gitlab/config/gitlab.rb
    
    # 配置http协议所使用的访问地址,不加端口号默认为80
    external_url 'http://服务器ip地址:8081'
    
    # 配置ssh协议所使用的访问地址和端口
    gitlab_rails['gitlab_ssh_host'] = '服务器ip地址'
    gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
    :wq #保存配置文件并退出
    

    ②重启gitlab容器

    # 重启gitlab容器
    $ docker restart gitlab
    

    此时项目的仓库地址就变了。如果ssh端口地址不是默认的22,就会加上ssh:// 协议头
    打开浏览器输入ip地址:端口号

    4.服务器安全组的配置

    ①配置需要放行的端口,不然访问不到,我这里用的是8081端口,只需要放行这个端口就行;为了方便,我把服务器全部端口进行了放行,这里对于生产用的服务器会存在安全性的问题。

    5.访问时出现502问题或者卡顿问题的解决

    ①我的服务器配置:腾讯云、1 核 2 GB 1 Mbps,便宜自己拿来玩买的。

    ②起初我以为是我的阿里云服务器配置过低造成的(1核,2G,centos7),后来发现不是这样。gitlab 启动运行就占用了大量的内存,2G内存在启动后已经所剩无几。想再进行 git 相关操作自然也就会出现卡顿现象。正常 centos 应该是启用 swap 分区的,但是阿里云,腾讯云的服务器却没有swap分区!

    ③查看swap分区情况:

     cat /proc/swaps
    

    ④创建 swap 分区(这里需要等待几秒)

    dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
    

    注意:创建swap大小为bs*count=4294971392(4G),/mnt/swap目录若无则找/data/swap

    ⑤通过mkswap命令将上面新建出的文件做成swap分区

    mkswap /data/swap
    

    ⑥查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
    查看参数:

    cat /proc/sys/vm/swappiness
    

    设置参数:

    sysctl -w vm.swappiness=60
    

    ⑦启用 swap 分区

    swapon /mnt/swap
    echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
    
    ⑧再次使用cat /proc/swaps 查看swap分区是否启动

    可以看到,swap分区已经启用,现在通过 gitlab 进行操作会发现很流畅!

    相关文章

      网友评论

          本文标题:Docker下搭建GitLab

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