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

 

結束.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM