docker 部署 gitlab最新版本( 当前 11.8.1经过验证)

官方文档

docker部署
https://docs.gitlab.com/omnibus/docker/

全部安装方法索引页
https://about.gitlab.com/install/

配置
https://blog.csdn.net/crper/article/details/81291034

本次环境以下

操做系统:
Centos 7.6 x86_64
4.4.176-1.el7.elrepo.x86_64

# rpm -qa|grep kernel
kernel-lt-4.4.176-1.el7.elrepo.x86_64
kernel-lt-devel-4.4.176-1.el7.elrepo.x86_64
kernel-lt-tools-libs-4.4.176-1.el7.elrepo.x86_64
kernel-lt-headers-4.4.176-1.el7.elrepo.x86_64
kernel-lt-tools-4.4.176-1.el7.elrepo.x86_64
kernel-lt-doc-4.4.176-1.el7.elrepo.noarch
kernel-lt-tools-libs-devel-4.4.176-1.el7.elrepo.x86_64

Docker:
Server: Docker Engine - Community
 Engine:
  Version:          18.09.3
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       774a1f4
  Built:            Thu Feb 28 06:02:24 2019
  OS/Arch:          linux/amd64
  Experimental:     false

找到相应gitlabt的docker版本

https://hub.docker.com
查找gitlab/gitlab-ce的官方制做
docker pull gitlab/gitlab-ce
这会拉取最新稳定版本,目前是11.8.1-ce.0

建立相关目录和docker数据卷

# mkdir -p /data/gitlab-backup
# mkdir -p /data/docker

# docker network create net_A
# docker volume create gitlab_config
# docker volume create gitlab_logs
# docker volume create gitlab_data
数据卷 容器位置 做用
gitlab_data /var/opt/gitlab gitlab的数据存放,包括nginx,postgresql这些
gitlab_logs /var/log/gitlab 日志存放
gitlab_config /etc/gitlab gitlab的主配置文件
/data/gitlab-backup /data/gitlab-backup 备份指令gitlab-rake gitlab:backup:create生成备份文件存放的目录

docker-compose文件

version: "2.4"
networks:
  net_A:
    external: true

volumes:
  gitlab_config:
    external: true
  gitlab_logs:
    external: true
  gitlab_data:
    external: true

services:
  ol-gitlab:
    image: gitlab/gitlab-ce
    container_name: ol-gitlab
    hostname: ol-gitlab
    ports:
      - "80:80"
      - "443:443"
      - "22:22"
    networks:
      - net_A
    volumes:
      - "/etc/localtime:/etc/localtime"
      - "gitlab_config:/etc/gitlab"
      - "gitlab_logs:/var/log/gitlab"
      - "gitlab_data:/var/opt/gitlab"
      - "/data/gitlab-backup:/data/gitlab-backup"

    environment:
      GITLAB_OMNIBUS_CONFIG: |
        unicorn['worker_timeout'] = 60
        unicorn['worker_processes'] = 3
        unicorn['worker_memory_limit_min'] = "200 * 1 << 20"
        unicorn['worker_memory_limit_max'] = "300 * 1 << 20"
        sidekiq['concurrency'] = 10
        external_url 'https://你的域名'
        gitlab_rails['backup_path'] = "/data/gitlab-backup"
        gitlab_rails['backup_keep_time'] = 1296000
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        gitlab_rails['backup_archive_permissions'] = 0644
        gitlab_rails['gitlab_shell_ssh_port'] = 22
        nginx['enable'] = true
        nginx['client_max_body_size'] = '250m'
        nginx['redirect_http_to_https'] = true
        nginx['ssl_certificate'] = "/etc/gitlab/ssl/你的公钥"
        nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/你的私钥.key"
        nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
        nginx['ssl_prefer_server_ciphers'] = "on"
        nginx['ssl_protocols'] = "TLSv1.1 TLSv1.2"
        nginx['ssl_session_cache'] = "builtin:1000  shared:SSL:10m"
        nginx['listen_addresses'] = ["0.0.0.0"]
        nginx['http2_enabled'] = true
        postgresql['max_worker_processes'] = 8
        postgresql['shared_buffers'] = "256MB"
    mem_limit: 4096m
    restart: always
    user: root

相关说明:html

- "/etc/localtime:/etc/localtime" 为了时间同步宿主机

官方建议unicorn['worker_processes']该值是等于CPU核心数+1,能够提升服务器的响应速度,若是内存只有4G,或者服务器上有其它业务,就不要改了,以避免内存不足。另外,这个参数最小值是2,设为1服务器可能会卡死,但若是您的内存已消耗太高,请根据业务自行调整,好比8G内存建议您调整4左右,优化是持续性的工做。

如下是官方翻译过来的内容:

CPU 

1核心CPU最多支持100个用户,全部的workers和后台任务都在同一个核心工做这将致使GitLab服务响应会有点缓慢。
2核心 支持500用户,这也是官方推荐的最低标准。
4 核心支持2,000用户。
8 核心支持5,000用户。
16 核心支持10,000用户。
32 核心支持20,000用户。
64 核心支持40,000用户。
若是想支持更多用户,可使用集群式架构

Memory 

安装使用GitLab须要至少4GB可用内存(RAM + Swap)! 因为操做系统和其余正在运行的应用也会使用内存, 因此安装GitLab前必定要注意当前服务器至少有4GB的可用内存. 少于4GB内存会致使在reconfigure的时候出现各类诡异的问题, 并且在使用过程当中也常常会出现500错误.

1GB 物理内存 + 3GB 交换分区 是最低的要求,但咱们 强烈反对 使用这样的配置。 查看下面unicorn worker章节获取更多建议。
2GB 物理内存 + 2GB 交换分区 支持100用户,但服务响应会很慢。
4GB 物理内存 支持100用户,也是 官方推荐 的配置。
8GB 物理内存 支持 1,000 用户。
16GB 物理内存 支持 2,000 用户。
32GB 物理内存 支持 4,000 用户。
64GB 物理内存 支持 8,000 用户。
128GB 物理内存 支持 16,000 用户。
256GB 物理内存 支持 32,000 用户。
若是想支持更多用户,可使用集群式架构
即便你服务器有足够多的RAM, 也要给服务器至少分配2GB的交换分区。 由于使用交换分区能够在你的可用内存波动的时候下降GitLab出错的概率。

注意: Sidekiq的25个workers在查看进程(top或者htop)的时候会发现它会单独显示每一个worker,可是它们是共享内存分配的,这是由于Sidekiq是一个多线程的程序。 详细内容查看下面关于Unicorn workers 的介绍。

复制ssl证书至容器目录

证书生成请参考其余文档

复制到数据卷gitlab_data中
# cp -a ssl/ /data/docker_root_dir/volumes/gitlab_config/_data/

启动gitlab容器

# docker-compose up -d

访问

请使用 此配置参数的网址进行访问 external_url 'https://code.motaobox.com'
第一次登陆,会让你重置密码,最少8个字符。
默认用户名为root

Gitlab目前最新版(11)集成了部分中文(在用户中心更改下语言为简体中文便可)

重置gitlab密码(官方)

https://docs.gitlab.com/ce/security/reset_root_password.html
后续再补充实战过程

备份恢复

先参考别人的
https://blog.csdn.net/ouyang_peng/article/details/77070977

后续实战以后再补充进来
相关文章
相关标签/搜索