• Docker中安装Gitlab详细全教程


    安装Docker:

      note: https://docs.docker.com/engine/install/centos/

    1 yum install -y yum-utils
    
    2 yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    3 yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    
    4 yum list docker-ce --showduplicates | sort -r
    docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.4-3.el7 docker-ce-stable
    
    
    5 yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
    例如 :yum install docker-ce-docker-ce.x86_64docker-ce-cli-docker-ce.x86_64 containerd.io docker-compose-plugin 
    
    
    6 systemctl start docker
    
    7  docker run hello-world
    

      

    Docker中安装Gitlab:

    一、安装Gitlab
          GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码。传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境。不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,如果有同学学过Java的话应该记得初学Java时配置环境变量的恐惧吧?因此更好的办法就是使用现在非常流行的Docker。

    那么Docker又是个什么东西呢?这是一个虚拟化的运行工具,主要目的是将软件和整个运行环境打包起来,让我们不需要配置即可快速运行软件。Docker安装服务还是比较方便的,此次主要记录Docker安装服务的详细过程,因为安装这个中途也踩了一些坑,此次安装环境CentOS7.6,Docker版本为1.13.1

    1.搜索images

    docker search gitlab
    

      可以看到镜像有很多,我选择gitlab-ce-zh,因为这是中文版,还是看中文版的比较舒服,版本的话就根据自己的喜好。

    2.下载images

    docker pull twang2218/gitlab-ce-zh
    

     安装过程会比较久,慢慢等待安装完成。 

     3.启动Git服务

    docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
    

     这里解释一下这串代码的情况,复制的话就复制上面的命令

    docker run
    -d #后台运行,全称:detach
    -p 8443:443 #将容器内部端口向外映射
    -p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
    -p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
    --restart always #容器自启动
    --name gitlab #设置容器名称为gitlab
    -v /usr/local/gitlab/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
    -v /usr/local/gitlab/log:/var/log/gitlab #与上面一样
    -v /usr/local/gitlab/data:/var/opt/gitlab #与上面一样
    --privileged=true #让容器获取宿主机root权限
    twang2218/gitlab-ce-zh #镜像的名称,这里也可以写镜像ID

    4.查看Gitlab是否已经启动
    // 添加-a 参数,把启动的,没有启动的都列出来

    docker ps
    

     看到这样的就说明已经启动成功了,下面就开始配置Gitlab

    配置Gitlab:
    1.首先,先进入容器

    docker exec -it gitlab bash
    

      看到这样说明你已经进入到容器里了

     2.修改gitlab.rb文件

      //先进入到gitlab目录

      cd /etc/gitlab
    

    //编辑gitlab.rb文件

    vim gitlab.rb
    

     3.修改gitlab.rb文件中的IP与端口号

       提示:在规定的位置放置规定的命令

      // 在gitlab创建项目时候http地址的host(不用添加端口)

    external_url 'http://xx.xx.xx.xx'
    

      //配置ssh协议所使用的访问地址和端口

    gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样
    gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口
    :wq //保存配置文件并退出
    

      

      3.配置gitlab.yml文件

    // 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config
    //先进入到config目录下

    cd /opt/gitlab/embedded/service/gitlab-rails/config
    

     //打开编辑gitlab.yml文件

    vim gitlab.yml
    

     //修改host 与上面.rb文件修改的一致

    // 修改port 为8090

     4.重启服务

    注:此命令为容器内重启服务命令

    gitlab-ctl restart
    

    5.退出命令行,推出容器命令

    // 退出命令行

    exit
    

     6.使用浏览器打开Gitlab

    第一次访问默认是root账户,会需要修改密码(密码至少8位数)设置好之后确定就行
       URL:http://192.168.200.80:8090/

     到了这一步说明已经安装成功了,可以去使用了

    二、常用命令

    //容器外停止
    docker stop gitlab // 这里的gitlab 就是我们上一步docker run 当中使用--name 配置的名字
    //容器外重启
    docker restart gitlab
    //进入容器命令行
    docker exec -it gitlab bash
    //容器中应用配置,让修改后的配置生效
    gitlab-ctl reconfigure
    //容器中重启服务
    gitlab-ctl restart
    

    GitLab无法启动日志查看

    docker logs gitlab > ./gitlab.log
    

      

    GitLab内存问题:

       GitLab占用内存非常恐怖,解决方法很简单

         修改 /etc/gitlab/gitlab.rb 文件,将 unicorn['worker_processes'] = 2 去掉注释就可以了。在注释的情况下默认是服务器上的所有线程。

         另外,可以将worker内存上限设置小一点,比如 unicorn['worker_memory_limit_max'] = "1280 * 1 << 20"

        禁用prometheus,可以进一步减少内存占用,prometheus_monitoring['enable'] = false,若不禁用,可以更改buffer大小,postgresql['shared_buffers'] = 256M

        经过上述调整,内存占用已经很小了。

        最后,gitlab-ctl reconfigure,让配置文件生效,并重启 gitlab-ctl restart

  • 相关阅读:
    [XPath] XPath 与 lxml (五)XPath 实例
    [XPath] XPath 与 lxml (四)XPath 运算符
    [XPath] XPath 与 lxml (三)XPath 坐标轴
    [XPath] XPath 与 lxml (二)XPath 语法
    拥抱.NET Core系列:MemoryCache 缓存过期
    拥抱.NET Core系列:MemoryCache 初识
    一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go
    Configuration Extensions
    拥抱.NET Core系列:Logging (1)
    拥抱.NET Core系列:依赖注入(2)
  • 原文地址:https://www.cnblogs.com/shiding/p/16533596.html
Copyright © 2020-2023  润新知