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运行日志

    结束.

  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/ding2016/p/10422605.html
Copyright © 2011-2022 走看看