1 關于Gitea
Gitea是一個輕量級的Git托管服務,也就是基于Git的代碼托管平臺,類似于 GitHub 、Gitee等。
Gitea相對于其他代碼托管平臺,是一個可以本地部署的開源項目,非常輕量化,運行時對CPU和內存的需求較小,適用于個人或小型團隊協作開發,適合在個人電腦或資源受限的服務器上使用。
2 Gitea的本地搭建
本次搭建環境演示系統為Ubuntu18.04.4 LTS。
使用Docker容器進行搭建,Docker可以在系統中創建、運行和管理容器。
使用Docker Compose進行管理,Docker Compose是一個Docker拓展工具,可以協同管理多個容器。
2.1 下載安裝Docker
本次的Gitea會搭建在容器中,這樣做可以將應用程序及其依賴項打包到一個獨立的環境中,應用就可以在任何地方運行。因此需要提前安裝Docker,命令如下:
sudo apt install docker.io
驗證是否安裝成功,成功顯示版本號則代表安裝成功:
docker -v
#成功顯示Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3
2.2 下載安裝Docker Compose
Docker Compose可以統一管理多個容器的啟動關閉和配置,是一個非常好用的容器管理工具。
這里提供兩種下載方式,在線下載方式簡單但有時候會出現較多的問題,離線下載比較穩定。
2.2.1 在線下載方式:
# github下載(外網源)sudo curl -L https://github.com/docker/compose/releases/download/2.30.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# daocloud下載 (國內源)sudo curl -L https://get.daocloud.io/docker/compose/releases/download/2.30.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
系統若無curl則提前安裝:
sudo apt install curl
下載成功后添加可執行權限:
sudo chmod +x /usr/local/bin/docker-compose
驗證是否安裝成功:
docker-compose -v
如果發現有問題,請檢查/usr/local/bin/docker-compose文件,如果發現大小只有幾百字節或更小,并且查看發現僅僅為一個HTML頁面,則代表鏡像源下載失敗了,建議換離線下載方式進行安裝。
2.2.2 離線下載方式
到Docker Compose項目倉庫下載對應架構的版本
這里筆者的系統是x86_64架構,并選擇2.30.3版本的程序下載:
直接將該exe文件改名放到/usr/local/bin/中,并修改權限:
#移動并改名sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose#修改權限sudo chmod +x /usr/local/bin/docker-compose
再驗證是否安裝成功:
#驗證docker-compose --version
#成功顯示Docker Compose version v2.30.3
2.3 配置docker-compose.yml文件
首先創建一個用于存放配置文件的項目目錄并進入:
mkdir ~/gitea && cd ~/gitea
在該文件夾中創建和編寫docker-conpose.yml配置文件,docker-cpmpose命令執行時會自動識別當前文件夾的docker-conpose.yml配置文件,當然也可以指定其他路徑的配置文件。
該docker-conpose.yml配置文件配置了兩個服務,即Gitea和MySQL服務,MySQL為Gitea服務提供數據庫支持:
若配置文件中注釋無法被命令識別,則刪除其中的注釋再使用。
# 定義網絡配置networks: gitea: # 創建一個名為 'gitea' 的自定義網絡 external: false # 表示該網絡由 Docker Compose 自動創建,而不是使用外部網絡# 定義服務配置services: # Gitea 服務配置 server: # 使用 Gitea 鏡像,指定版本為 1.21.1 image: gitea/gitea:1.21.1 # 容器名稱設為 'gitea' container_name: gitea # 環境變量配置 environment: - USER_UID=1000 # 設置 Gitea 進程運行的用戶 ID 為 1000 - USER_GID=1000 # 設置 Gitea 進程運行的用戶組 ID 為 1000 - GITEA__database__DB_TYPE=mysql # 設置數據庫類型為 MySQL - GITEA__database__HOST=db:3306 # 設置數據庫主機為 db 服務(MySQL 服務)并指定端口 - GITEA__database__NAME=gitea # 設置數據庫名稱為 gitea - GITEA__database__USER=gitea # 設置數據庫用戶為 gitea - GITEA__database__PASSWD=gitea # 設置數據庫密碼為 gitea # 容器的重啟策略,容器停止后會自動重啟 restart: always # 將容器連接到 'gitea' 網絡 networks: - gitea # 使用上面定義的 'gitea' 網絡
# 持久化存儲和時區配置 volumes: # 將主機的 ./gitea 目錄掛載到容器內的 /data 目錄,用于存儲 Gitea 的數據 - ./gitea:/data # 將宿主機的時區配置掛載到容器內,確保容器時區與主機一致 - /etc/timezone:/etc/timezone:ro # ro 表示只讀 # 將宿主機的本地時間配置掛載到容器內,確保容器時間與主機一致 - /etc/localtime:/etc/localtime:ro # ro 表示只讀
# 端口映射 ports: # 將宿主機的 3000 端口映射到容器的 3000 端口,Gitea Web 界面可通過宿主機 3000 端口訪問 - "3000:3000" # 將宿主機的 222 端口映射到容器的 22 端口,用于 SSH 訪問 Gitea - "222:22" # 定義依賴關系,確保 MySQL 服務在 Gitea 啟動之前啟動 depends_on: - db
# MySQL 數據庫服務配置 db: # 使用 MySQL 鏡像,指定版本為 8 image: mysql:8 # 容器名稱設為 'mysql' container_name: mysql # 容器的重啟策略,容器停止后會自動重啟 restart: always
# 環境變量配置 environment: - MYSQL_ROOT_PASSWORD=gitea # 設置 MySQL root 用戶的密碼為 gitea - MYSQL_USER=gitea # 設置 MySQL 用戶為 gitea - MYSQL_PASSWORD=gitea # 設置 MySQL 用戶的密碼為 gitea - MYSQL_DATABASE=gitea # 創建一個名為 gitea 的數據庫
# 將容器連接到 'gitea' 網絡 networks: - gitea # 使用上面定義的 'gitea' 網絡 # 端口映射 ports: - "3306:3306" # 將宿主機的 3306 端口映射到容器的 3306 端口,供 Gitea 訪問 MySQL
# 持久化存儲 MySQL 數據 volumes: - ./mysql:/var/lib/mysql # 將宿主機的 ./mysql 目錄掛載到容器內的 /var/lib/mysql 目錄,持久化數據庫數據
2.4 啟動docker容器
sudo docker-compose up -d
如果啟動出現超時報錯,則需要更換加速鏡像地址。
修改加速鏡像地址需修改/etc/docker/daemon.json文件內容,若無該文件則創建再編寫:
{ "registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]}
保存文件修改,再依次執行如下命令重啟docker:
sudo systemctl daemon-reloadsudo systemctl restart docker
docker服務重啟后再次執行啟動docker容器命令:
sudo docker-compose up -d
啟動成功后,可以通過如下命令檢查gitea服務的docker容器是否啟動:
sudo docker ps
#若成功則顯示,可以看到對應的容器ID、鏡像、端口映射、服務名稱等CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES89825b4d35bb gitea/gitea:1.21.1 "/usr/bin/entrypoint…" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp giteacd7ef47cc0a9 mysql:8 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
2.5 訪問本地Gitea服務
瀏覽器輸入主機IP+端口,即可訪問:
192.168.xx.xx:3000
初次進入后,會顯示一個初始配置確認頁面,如下圖所示,該配置已正常讀取docker-conpose配置,如果沒有特殊需求直接點擊立即安裝即可:
安裝完成后,注冊賬號并登錄即可正常使用(服務中注冊的第一個賬號默認為管理員)。
在Gitea中,可以像其他代碼托管平臺一樣實現版本控制、分支管理、代碼審查、問題跟蹤等功能。
Gitea同樣也支持將其他托管平臺代碼遷移過來,進行倉庫備份:
-
服務器
+關注
關注
12文章
9160瀏覽量
85415 -
代碼
+關注
關注
30文章
4788瀏覽量
68603 -
Git
+關注
關注
0文章
199瀏覽量
15758
發布評論請先 登錄
相關推薦
評論