iT邦幫忙

0

使用 Ubuntu Server 與 Docker 建立 Gitea 程式儲存庫

在資安越來越嚴苛的情況下
公司內部通常需要一個版本控制的儲存庫以方便進行存儲觀看程式與版本歷史
這時我最近發現有一個很火的 Git 儲存庫 Gitea 可以非常方便安裝使用
接下來用 做一杯茶的時間 一起安裝 Gitea 吧!

安裝 Ubuntu Server 與 Docker

  • Ubuntu Server 下載 iso 檔案並安裝
    • 選擇:Option 2 - Manual server installation
    • 當前環境安裝 Ubuntu Server 21.10
  • 安裝完成將系統版本更新至最新:
      sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
    
  • 使用腳本安裝 Docker:
      curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyu
    
    • 若出現 ca-certificates 問題則執行:
        sudo apt-get install --reinstall ca-certificates
      

建立 Gitea 程式儲存庫

  • 安裝最新版本 Gitea:
      sudo docker pull gitea/gitea:latest
    
  • 建立 Git 儲存庫:
      sudo mkdir -p /var/lib/gitea
    
  • 啟動 Docker 容器:
      sudo docker run -d --privileged=true --restart=always \
      --name=gitea -p 10022:22 -p 10080:3000 \
      -v /var/lib/gitea:/data \
      -v /etc/localtime:/etc/localtime:ro \
      -v /etc/timezone:/etc/timezone:ro \
      gitea/gitea:latest
    
    • -d(--detach):代表執行 container 並印出 container ID
    • --privileged=true:使用該參數讓 container 內的 root 擁有真正的 root 權限
    • --restart=always:重啟時將自動重啟容器
    • -p(--publish):將容器的指定端口發佈到主機(主機端口:容器端口)
    • -v(--volume):使用指定儲存庫(主機目錄:容器目錄)
    • 參考文件
  • 訪問 http://localhost:10080 設定 Gitea
    • 原則上若沒指定資料庫則使用預設 SQLite
    • 重點!在基礎 url 填寫外部呼叫的 url 如:http://yourIp:yourPort

備份 Git 儲存庫

  • 安裝 sshpass:
      sudo apt-get -y install sshpass
    
    • -y:對所有詢問都給予肯定,同時不做任何提示
    • Ubuntu Server 21.10 安裝時已包含 tar、rsync、crontab 故無須再重新安裝
  • 壓縮 Git 儲存庫:
      sudo tar zcvf /var/lib/gitea/gitea.tar.gz /var/lib/gitea
    
    • 解壓縮:
        sudo tar zxvf /var/lib/gitea/gitea.tar.gz
      
  • 備份至遠端:
      sshpass -p 'remote_password' \
      rsync -azvh /var/lib/gitea/gitea.tar.gz \ 
      user@remoteIp:path
    
  • 刪除壓縮檔:
      sudo rm -rf /var/lib/gitea/gitea.tar.gz
    
  • 另外可使用 crontab 進行排程任務備份

Firefox 端口阻擋解決方法

  • 網址列輸入:about:config
  • 搜尋:network.security.ports.banned.override
  • 點選 string 並加入 port 刷新頁面即可

參考資料


尚未有邦友留言

立即登入留言