[精讚] [會員登入]
279

[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

你可能感興趣的文章

[Centos8] linux 上的Base64加解密指令 在linux上很方便的指令可以加解密 base64

[Centos7] HTTPS/SSL憑證的SELINUX設置 把申請來的憑證檔放到指定的位置後,沒辦法啟動,怎麼辦?

Centos7 安裝 docker-composer 及使用 docker compose 是使用docker的利器,可以讓很多的指令用文檔的方式載入。

[CENTOS7 8] 查看記憶體 linux 中查看記憶體狀態指令整理

Centos7 的ifconfig和netstat Centos7 和RHEL 7 最小安裝中竟然沒有ifconfig和netstat?原來centos/rhel準備把這兩個指令作廢,那怎麼辦?

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

使用Google尋找你的手機 這近發現google竟然可以用來找android的手機,而且不需要經過什麼設定或安裝軟體。

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

[JAVA] JWS, JWT, JWE, JOSE是什麼? [JAVA] JWS, JWT, JWE, JOSE是什麼?非常的複雜,儘量來搞清楚..

[CodeIgniter 3] 資料庫的使用方法整理1/2 --Select的使用 [CodeIgniter 3] 資料庫的使用方法整理:Select的使用