zoukankan      html  css  js  c++  java
  • centos7下使用docker安装gitlab

    环境背景:

    Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程。

    测试环境:

    系统 软件 依赖
    CentOS 7.4 GitLab(latest) docker-ce 18

    安装过程:

     1. 安装docker引擎并启动

    [root@server-10 ~]# yum install docker-ce -y    //需要去官方下载docker.repo文件
    [root@server-10 ~]# systemctl enable docker
    [root@server-10 ~]# systemctl start docker

    2. 获取gitlab镜像包

    [root@server-10 ~]# docker pull gitlab/gitlab-ce    //里面集成的东西较多,镜像可能比较大

    查看下载好的镜像

    [root@server-10 logs]# docker images
    REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
    gitlab/gitlab-ce                          latest              991cd608c116        2 weeks ago         1.59GB

    3. 在本机准备gitlab工作目录

    [root@server-10 ~]# mkdir -p /data/docker/gitlab/{config,data,logs}

    以上在本机建立的3个目录是为了gitlab容器通过挂载本机目录启动后可以映射配置文件,数据文件,日志文件到本机,然后后续就可以直接在本机查看和编辑了,不用再进容器操作。

    4. 启动gitlab关键步骤

    [root@server-10 ~]# docker run -d 
     --name gitlab 
     --hostname gitlab 
     --restart always 
     -p 4443:443 -p 8888:80 -p 2222:22         //根据需要增减映射相应端口
     -v /data/docker/gitlab/config:/etc/gitlab 
     -v /data/docker/gitlab/data:/var/opt/gitlab 
     -v /data/docker/gitlab/logs:/var/log/gitlab 
     gitlab/gitlab-ce:latest 

     说明:

    -d:后台运行

    --name:设置容器的名字;

    --hostname:设置容器内主机的名字;

    --restart:设置容器的重启策略,可选项: no | on-failure[:max-retries] | always | unless-stopped ;

    -p(小写字母):映射端口,形式:[hostPort:]containerPort,如果不加主机端口,那么会在主机上生成随机端口;

    -v(小写字母):挂载目录,形式:[HOST-DIR:]CONTAINER-DIR;

    4. 检查启动信息

    [root@server-10 ~]# docker ps
    CONTAINER ID        IMAGE                     COMMAND                  CREATED              STATUS                                 PORTS                                                               NAMES
    3c8cdd184582        gitlab/gitlab-ce:latest   "/assets/wrapper"        About a minute ago   Up About a minute (health: starting)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

    启动需要一些时间,过一段时间后再次查看

    [root@server-10 logs]# docker ps 
    CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                   PORTS                                                               NAMES
    3c8cdd184582        gitlab/gitlab-ce:latest   "/assets/wrapper"        3 minutes ago       Up 3 minutes (healthy)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

    再查看本机端口状态

    [root@server-10 ~]# netstat -tnl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN         
    tcp6       0      0 :::2222                 :::*                    LISTEN         
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 :::8888                 :::*                    LISTEN        
    tcp6       0      0 :::4443                 :::*                    LISTEN     

    查看本机为gitlab容器新建的工作目录内容

    [root@server-10 ~]# tree -L 2 /data/docker/gitlab/
    /data/docker/gitlab/
    ├── config
    │   ├── gitlab.rb        // 主要配置文件
    │   ├── gitlab-secrets.json
    │   ├── ssh_host_ecdsa_key
    │   ├── ssh_host_ecdsa_key.pub
    │   ├── ssh_host_ed25519_key
    │   ├── ssh_host_ed25519_key.pub
    │   ├── ssh_host_rsa_key
    │   ├── ssh_host_rsa_key.pub
    │   └── trusted-certs
    ├── data
    │   ├── backups
    │   ├── git-data
    │   ├── gitlab-ci
    │   ├── gitlab-rails
    │   ├── gitlab-shell
    │   ├── logrotate
    │   ├── postgresql
    │   ├── redis
    │   └── trusted-certs-directory-hash
    └── logs
        ├── gitlab-rails
        ├── gitlab-shell
        ├── logrotate
        ├── postgresql
        ├── reconfigure
        ├── redis
        ├── sidekiq
        ├── sshd
        └── unicorn
    View Code

    以上可以看出里面集成的东西还是挺多的。

    5. 登录gitlab

    在浏览器输入安装gitlab容器的主机地址,形式 IP:PORT

    首次登录设置新密码,然后进入下一页登录界面,用户名:root,密码:<上一页设定的密码 >

    后面就可以使用了。

    6. 排错

    如果初始登录浏览器出现502那么请检查是否端口冲突,修改文件gitlab.rb相关端口项 unicorn['port'] =PORT

    也可以根据logs目录中的信息跟踪查询,如果出现GitLab external URL must include a schema and FQDN,请尝试修改gitlab.rb文件中的配置项格式 external_url = 'gitlab.xxx.com' 或者 external_url  'http://138.138.82.10'。

    7. 更新GitLab

    如果采用上述安装方法,更新变的很简单:停止gitlab容器,删除停止的gitlab容器,获取新镜像,再次使用原来的启动命令启动出一个新gitlab容器即可。不用担心数据丢失,只要挂载目录与之前一致,就会自动读取主机原来的目录下的数据。

    附. 常用gitlab命令

    gitlab-ctl reconfigure  // 重新应用gitlab的配置
    gitlab-ctl restart    // 重启gitlab服务
    gitlab-ctl status      // 查看gitlab运行状态
    gitlab-ctl stop      // 停止gitlab服务
    gitlab-ctl tail     // 查看gitlab运行日志

    结束.

  • 相关阅读:
    MVC框架理解及优缺点
    ThinkPHP 小于5.0.24 远程代码执行高危漏洞 修复方案
    Nginx负载均衡配置与负载策略
    【高级】PHPFPM和Nginx的通信机制
    浅谈Facebook的服务器架构(组图) 狼人:
    【观点】什么是REST? 狼人:
    10款对开发者有用的Android应用 狼人:
    【书摘】Linux内核编程 狼人:
    6款强大的jQuery插件 创建和加强网站布局 狼人:
    【评论】是什么造就了伟大的程序员? 狼人:
  • 原文地址:https://www.cnblogs.com/ding2016/p/10422605.html
Copyright © 2011-2022 走看看