[精讚] [會員登入]
561

[Rocky Linux] 安裝gitlab gitlab+docker compose+ nginx

安裝Gitlab並結合nginx當網頁伺服器

分享此文連結 //n.sfs.tw/16075

分享連結 [Rocky Linux] 安裝gitlab gitlab+docker compose+ nginx@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2023-02-24 11:13:09 最後編修
2023-02-23 14:33:56 By 張○○
 

自動目錄

這次的任務是安裝 gitlab ,比較特別的是因為同一台機器已有網頁的服務,所以利用 nginx當作proxy 轉到內部的 gitlab 網頁。

安裝使用docker 來安裝,非常方便。

DOCKER COMPOSE

gitlab 的compose 設定

  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    container_name: gitlab
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.sfs.tw'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    volumes:
      - ./gitlab/data:/var/opt/gitlab
      - ./gitlab/logs:/var/log/gitlab
      - ./gitlab/config:/etc/gitlab
    ports:
        - "2222:22"

以上的設置中,作業系統的22埠已被ssh占用,container的22埠就指到作業系統的2222埠。

gitlab預設會聆聽 80及443 ,不必另外設置。

預設的對外url要指定,這裡採用http協定,如果你有憑證也可以改成https。

因為同一台伺服器已有網頁的服務,我又不想用非標準埠來提供gitlab的網頁服務,所以透過nginx來作proxy

  nginx:
      image: nginx:latest
      container_name: nginx
      ports:
        - "80:80"
      volumes:
        - ./conf/conf.d:/etc/nginx/conf.d/:ro
      restart: always

以上空間指到目錄下的 ./conf/conf.d/ ,在其中建立一個檔案virtual,nginx啟動時會自動讀取該檔的設置。

server {
    listen 80;
    listen [::]:80;
    server_name gitlab.sfs.tw;
    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://gitlab:80/;
    }
}

如果你是https,80修改為443並放入憑證即可,例如這樣(僅供參考):

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
...
    ssl_certificate /etc/nginx/conf.d/your_full_chain.crt;
    ssl_certificate_key /etc/nginx/conf.d/your_private.key;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1.2;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
}

重啟docker生效。

 

進到網頁

進到你設定的網址 http://gitlab.sfs.tw/

登入帳號是 root,密碼放在你的設定檔 /etc/gitlab/initial_root_password中。

# sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

把那串長長的貼入即可

建立管理帳號

左上角三條線點一下,選Admin

root要修改密碼以免被別人用root登入(因為都從github的images),並建立一個管理帳號,其中Access level 設為Administrator。

 

修改語系

預設是英文,你可以選擇數十總語言,右上角的頭像-> Preferences ->

左邊的選單 Reference ->Localization ->Language

測試

建立一個專案後,下面這兩個不要勾

依指示設定你的帳號資料

$ cd /path/to/yourdirectory
$ git config --global user.name "你的名字"
$ git config --global user.email "你的email"

初始化你的專案並加入遠端資源埠

$ git init --initial-branch=main
$ git remote add origin http://gitlab.sfs.tw/username/test.git

加入檔案到git清單中

$ git add .
$ git commit -m "Initial commit"
$ git push -u origin main

測試ok

 

參考資料

[1] https://ithelp.ithome.com.tw/articles/10211148

[2] https://hub.docker.com/r/gitlab/gitlab-ce

 

END

你可能感興趣的文章

[CentOS6] 設定 sendmail Centos6上設定sendmail,基本上sendmail會設定多半是為了寄系統信和收垃圾信(喂!!?)

[Linux] mongodb 初步--2/3 我使用mongo 的一些大小事:叢集

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

[Centos7] selinux 修改網頁連線的埠號 想把網頁改到非標準的80埠,在selinux上要如何修改?

使用mutt發信(LINUX直接寄信) mutt是一個簡易的發送程式,學會他就不用每次telnet mail server 煩死人

[bc] linux 的計算機bc 如何計算帶小數點的指數 用 bc 來計算帶小數點的指數,得轉個彎才行

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[MAC] 截取螢幕畫面的方法 截取螢幕畫面的方法,在MAC中叫作螢幕快照,英文是screenshot

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

為什麼要買長達二十年的保單? 為什麼要買長達二十年的保單?找一個可以說服我買二十年保單的理由。

Linux shell 的date表示法 linux下SHELL中的date表示法

好用的3+2碼郵遞區號查詢系統推薦 網路上找到用地址輸入判斷3+2碼郵遞區號的辨識率不高,除了這個網站…