3C Tech Center
  • Home
  • My Notes
  • 輕鬆小品
  • D-Laravel粉絲頁
  • 登入
    • Facebook登入
    • Google登入
    • Github登入
    • Twitter登入
    • Line登入

  • Home
  • My Notes
  • 輕鬆小品
  • D-Laravel粉絲頁
  • Growl

  • Facebook登入
  • Github登入
  • Twitter登入
  • Line登入
  • Help
  • Favorites
  • Logout
攻略docker版Let... 介紹document.de...

攻略docker版Let... 介紹document.de...
  • 2018年10月06日 Devin

    關於gitlab的docker設定分享

    前言

    我朋友想研究gitlab的操作,我說用docker image不用十分鐘就裝起來了,
    我家的Synology Nas上也有gitlab套件可以直接安裝。

    結果,不是安裝失敗,就是修復中,或是已啟動了不能用。@@
    還被朋友嗆...


    即然Synalogy Nas上的gitlab老是安裝失敗,山不轉路轉,
    我就用官方的Docker image來跑私有倉庫吧

    官方文件連結:
    https://docs.gitlab.com/omnibus/docker/
     

    步驟

    一、透過ssh連線進入我的Synlogy Nas。
    (前題,您的Synology NAS需設定可以SSH登入,這裡我採公鑰驗證,並且透過ssh-agent記錄密碼了,因此沒打密碼。)

    (題外話,我能用cc登入,是在~/.ssh/config中有類似的設定 ,192.168.100.1是我的Nas的IP位置)
    下圖中,Include方式有些舊版的Linux並不支援哦,貼出來供大家參考!


    二、建立掛載所需的資料夾。
    mkdir -p /volume1/docker/gitlab/config
    mkdir -p /volume1/docker/gitlab/logs
    mkdir -p /volume1/docker/gitlab/data
    
    
    三、執行docker run指令,創建並執行容器。
    (前題,您的Synology NAS需支援Docker安裝與執行,您安裝好了)
    docker run --detach \
    --hostname git.ccc.tc \
    --publish 127.0.0.1:3080:80 --publish 3022:22 \
    --name gitlab \
    --restart always \
    --volume /volume1/docker/gitlab/config:/etc/gitlab \
    --volume /volume1/docker/gitlab/logs:/var/log/gitlab \
    --volume /volume1/docker/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest
    
    

    在上方的例子中,我將web的port開在host的port 3080,並且使用本機的IP位置。

    因為Synology有反向代理,可以走HTTPS,因此我不需要將沒加密的HTTP公佈到外面。
    我們從Synalogy Nas上的「控制台」=>「應用程式入口」可以進行此設定。
    我的規則如下:


    如果您的Synalogy Nas也有設定防火牆,記得開啟port 3443。
    其實是可以弄另一個子域名,例如: gitlab.ccc.tc,就不需要額外的port 3443了。
    不過只是隨便測試,就不這麼講究啦。

    啟動與關閉

    因為是單純使用docker進行contianer的建立與執行。下次除非我們刪了container,不然啟用及停止只需透過。
    docker start gitlab
    
    
    或是
    docker stop gitlab
    
    

    關於設定

    gitlab的設定就會存放在掛載的資料夾,gitlab.rb檔


    在上方的docker指令中,我們使用的是標準的port 3080:80,會看到HTTP的連結是HTTP,非下方的HTTPS連結。


    在Synology的Nas上,是使用HTTPS為入口的,而Container內是用HTTP,為了讓GitLab顯示正確的HTTPS協定,
    在gitlab.rb檔內,我進行設定如下:
    external_url 'https://git.ccc.tc:3443'
    
    
    但是,如果單純上方的設定,會造成nginx啟動失敗,推測是沒設定憑證造成,沒去深究了。
    再補上下方設定即可覆寫gitlab的container啟動時,nginx依然採用port 80非上方的external_url。
    ##! **Override only if you use a reverse proxy**
    ##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port
    # nginx['listen_port'] = nil
    nginx['listen_port'] = 80
    ##! **Override only if your reverse proxy internally communicates over HTTP**
    ##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#supporting-proxied-ssl
    nginx['listen_https'] = false
    
    

    完成設定後,進入gitlab的container內
    docker exec -ti gitlab bash
    
    

    再進行設定檔重載重作: (下方指令,是在gitlab的容器內執行的)
    gitlab-ctl reconfigure
    
    

    補充

    我們知道git有多種的傳輸協定,除了http外也有ssh。在docker run時,已指定了port開在3022了。
    因此,當我們要採用SSH進行clone並且在非標準的連接埠時,最簡單做法就是新增~/.ssh/config
    Host cclab
    Hostname git.ccc.tc
    User git
    Port 3022
    這樣,就可以經由ssh加上自訂的host名稱進行clone囉。
    git clone cclab:devin/testing.git

    這是我朋友邀求建立的測試帳號(ironma/thor),私有倉庫完成囉。
    除了他自己外,另外兩個使用者,我問說,誰要當管理者,他說他。


    我說,好歹索爾也是個神,所以....私有倉庫搞定囉。
    下方即是建立的測試帳號..:D


    Docker真是方便好用。D-Laravel也是....:p


    Tweet
    留言


攻略docker版Let'...

介紹document.des...

相關文章
  • 我如何刪除,我GitHub上的遠端分支
  • 透過Git屬性,在diff時,同時正常顯示...
  • 用docker-compose快速建立私有的git服...
  • git別名之昨日報表
相關文章
  • 我如何刪除,我GitHub上的遠端分支
  • 透過Git屬性,在diff時,同時正常顯示big5及gb2312等不同編碼
  • 用docker-compose快速建立私有的git服務
  • git別名之昨日報表
封存
  • October 2019 (1)
  • May 2019 (1)
  • March 2019 (1)
  • January 2019 (1)
  • December 2018 (3)
  • October 2018 (3)
  • September 2018 (3)
  • August 2018 (1)
  • July 2018 (3)
  • June 2018 (4)
  • May 2018 (4)
  • April 2018 (7)
  • March 2018 (2)
  • February 2018 (9)
  • January 2018 (8)
  • December 2017 (5)
  • November 2017 (3)
  • October 2017 (10)
  • September 2017 (11)
  • August 2017 (4)
  • July 2017 (13)
  • June 2017 (3)
© 2018 Cyber Coding Course

發表留言