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

後續實戰以後再補充進來
相關文章
相關標籤/搜索