0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

超級(jí)干貨!本地搭建代碼托管平臺(tái)Gitea

億佰特物聯(lián)網(wǎng)應(yīng)用專(zhuān)家 ? 2024-12-19 19:33 ? 次閱讀

1 關(guān)于Gitea

Gitea是一個(gè)輕量級(jí)的Git托管服務(wù),也就是基于Git的代碼托管平臺(tái),類(lèi)似于 GitHub 、Gitee等。

Gitea相對(duì)于其他代碼托管平臺(tái),是一個(gè)可以本地部署的開(kāi)源項(xiàng)目,非常輕量化,運(yùn)行時(shí)對(duì)CPU和內(nèi)存的需求較小,適用于個(gè)人或小型團(tuán)隊(duì)協(xié)作開(kāi)發(fā),適合在個(gè)人電腦或資源受限的服務(wù)器上使用。

2 Gitea的本地搭建

本次搭建環(huán)境演示系統(tǒng)為Ubuntu18.04.4 LTS。

使用Docker容器進(jìn)行搭建,Docker可以在系統(tǒng)中創(chuàng)建、運(yùn)行和管理容器。

使用Docker Compose進(jìn)行管理,Docker Compose是一個(gè)Docker拓展工具,可以協(xié)同管理多個(gè)容器。

2.1 下載安裝Docker

本次的Gitea會(huì)搭建在容器中,這樣做可以將應(yīng)用程序及其依賴(lài)項(xiàng)打包到一個(gè)獨(dú)立的環(huán)境中,應(yīng)用就可以在任何地方運(yùn)行。因此需要提前安裝Docker,命令如下:

sudo apt install docker.io

驗(yàn)證是否安裝成功,成功顯示版本號(hào)則代表安裝成功:

docker -v
#成功顯示Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3

2.2 下載安裝Docker Compose

Docker Compose可以統(tǒng)一管理多個(gè)容器的啟動(dòng)關(guān)閉和配置,是一個(gè)非常好用的容器管理工具。

這里提供兩種下載方式,在線(xiàn)下載方式簡(jiǎn)單但有時(shí)候會(huì)出現(xiàn)較多的問(wèn)題,離線(xiàn)下載比較穩(wěn)定。

2.2.1 在線(xiàn)下載方式:

# github下載(外網(wǎng)源)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下載 (國(guó)內(nèi)源)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

系統(tǒng)若無(wú)curl則提前安裝:

sudo apt install curl

下載成功后添加可執(zhí)行權(quán)限:

sudo chmod +x /usr/local/bin/docker-compose

驗(yàn)證是否安裝成功:

docker-compose -v

如果發(fā)現(xiàn)有問(wèn)題,請(qǐng)檢查/usr/local/bin/docker-compose文件,如果發(fā)現(xiàn)大小只有幾百字節(jié)或更小,并且查看發(fā)現(xiàn)僅僅為一個(gè)HTML頁(yè)面,則代表鏡像源下載失敗了,建議換離線(xiàn)下載方式進(jìn)行安裝。

2.2.2 離線(xiàn)下載方式

到Docker Compose項(xiàng)目倉(cāng)庫(kù)下載對(duì)應(yīng)架構(gòu)的版本

這里筆者的系統(tǒng)是x86_64架構(gòu),并選擇2.30.3版本的程序下載:

02237694-bdfd-11ef-8084-92fbcf53809c.png

直接將該exe文件改名放到/usr/local/bin/中,并修改權(quán)限:

#移動(dòng)并改名sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose#修改權(quán)限sudo chmod +x /usr/local/bin/docker-compose

再驗(yàn)證是否安裝成功:

#驗(yàn)證docker-compose --version
#成功顯示Docker Compose version v2.30.3

2.3 配置docker-compose.yml文件

首先創(chuàng)建一個(gè)用于存放配置文件的項(xiàng)目目錄并進(jìn)入:

mkdir ~/gitea && cd ~/gitea

在該文件夾中創(chuàng)建和編寫(xiě)docker-conpose.yml配置文件,docker-cpmpose命令執(zhí)行時(shí)會(huì)自動(dòng)識(shí)別當(dāng)前文件夾的docker-conpose.yml配置文件,當(dāng)然也可以指定其他路徑的配置文件。

該docker-conpose.yml配置文件配置了兩個(gè)服務(wù),即Gitea和MySQL服務(wù),MySQL為Gitea服務(wù)提供數(shù)據(jù)庫(kù)支持:

若配置文件中注釋無(wú)法被命令識(shí)別,則刪除其中的注釋再使用。

# 定義網(wǎng)絡(luò)配置networks: gitea: # 創(chuàng)建一個(gè)名為 'gitea' 的自定義網(wǎng)絡(luò) external: false # 表示該網(wǎng)絡(luò)由 Docker Compose 自動(dòng)創(chuàng)建,而不是使用外部網(wǎng)絡(luò)# 定義服務(wù)配置services: # Gitea 服務(wù)配置 server: # 使用 Gitea 鏡像,指定版本為 1.21.1 image: gitea/gitea:1.21.1 # 容器名稱(chēng)設(shè)為 'gitea' container_name: gitea # 環(huán)境變量配置 environment: - USER_UID=1000 # 設(shè)置 Gitea 進(jìn)程運(yùn)行的用戶(hù) ID 為 1000 - USER_GID=1000 # 設(shè)置 Gitea 進(jìn)程運(yùn)行的用戶(hù)組 ID 為 1000 - GITEA__database__DB_TYPE=mysql # 設(shè)置數(shù)據(jù)庫(kù)類(lèi)型為 MySQL - GITEA__database__HOST=db:3306 # 設(shè)置數(shù)據(jù)庫(kù)主機(jī)為 db 服務(wù)(MySQL 服務(wù))并指定端口 - GITEA__database__NAME=gitea # 設(shè)置數(shù)據(jù)庫(kù)名稱(chēng)為 gitea - GITEA__database__USER=gitea # 設(shè)置數(shù)據(jù)庫(kù)用戶(hù)為 gitea - GITEA__database__PASSWD=gitea # 設(shè)置數(shù)據(jù)庫(kù)密碼為 gitea # 容器的重啟策略,容器停止后會(huì)自動(dòng)重啟 restart: always # 將容器連接到 'gitea' 網(wǎng)絡(luò) networks: - gitea # 使用上面定義的 'gitea' 網(wǎng)絡(luò)
# 持久化存儲(chǔ)和時(shí)區(qū)配置 volumes: # 將主機(jī)的 ./gitea 目錄掛載到容器內(nèi)的 /data 目錄,用于存儲(chǔ) Gitea 的數(shù)據(jù) - ./gitea:/data # 將宿主機(jī)的時(shí)區(qū)配置掛載到容器內(nèi),確保容器時(shí)區(qū)與主機(jī)一致 - /etc/timezone:/etc/timezone:ro # ro 表示只讀 # 將宿主機(jī)的本地時(shí)間配置掛載到容器內(nèi),確保容器時(shí)間與主機(jī)一致 - /etc/localtime:/etc/localtime:ro # ro 表示只讀
# 端口映射 ports: # 將宿主機(jī)的 3000 端口映射到容器的 3000 端口,Gitea Web 界面可通過(guò)宿主機(jī) 3000 端口訪(fǎng)問(wèn) - "3000:3000" # 將宿主機(jī)的 222 端口映射到容器的 22 端口,用于 SSH 訪(fǎng)問(wèn) Gitea - "222:22" # 定義依賴(lài)關(guān)系,確保 MySQL 服務(wù)在 Gitea 啟動(dòng)之前啟動(dòng) depends_on: - db
# MySQL 數(shù)據(jù)庫(kù)服務(wù)配置 db: # 使用 MySQL 鏡像,指定版本為 8 image: mysql:8 # 容器名稱(chēng)設(shè)為 'mysql' container_name: mysql # 容器的重啟策略,容器停止后會(huì)自動(dòng)重啟 restart: always
# 環(huán)境變量配置 environment: - MYSQL_ROOT_PASSWORD=gitea # 設(shè)置 MySQL root 用戶(hù)的密碼為 gitea - MYSQL_USER=gitea # 設(shè)置 MySQL 用戶(hù)為 gitea - MYSQL_PASSWORD=gitea # 設(shè)置 MySQL 用戶(hù)的密碼為 gitea - MYSQL_DATABASE=gitea # 創(chuàng)建一個(gè)名為 gitea 的數(shù)據(jù)庫(kù)
# 將容器連接到 'gitea' 網(wǎng)絡(luò) networks: - gitea # 使用上面定義的 'gitea' 網(wǎng)絡(luò) # 端口映射 ports: - "3306:3306" # 將宿主機(jī)的 3306 端口映射到容器的 3306 端口,供 Gitea 訪(fǎng)問(wèn) MySQL
# 持久化存儲(chǔ) MySQL 數(shù)據(jù) volumes: - ./mysql:/var/lib/mysql # 將宿主機(jī)的 ./mysql 目錄掛載到容器內(nèi)的 /var/lib/mysql 目錄,持久化數(shù)據(jù)庫(kù)數(shù)據(jù)

2.4 啟動(dòng)docker容器

sudo docker-compose up -d

如果啟動(dòng)出現(xiàn)超時(shí)報(bào)錯(cuò),則需要更換加速鏡像地址。

修改加速鏡像地址需修改/etc/docker/daemon.json文件內(nèi)容,若無(wú)該文件則創(chuàng)建再編寫(xiě):

{ "registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]}

保存文件修改,再依次執(zhí)行如下命令重啟docker:

sudo systemctl daemon-reloadsudo systemctl restart docker

docker服務(wù)重啟后再次執(zhí)行啟動(dòng)docker容器命令:

sudo docker-compose up -d

啟動(dòng)成功后,可以通過(guò)如下命令檢查gitea服務(wù)的docker容器是否啟動(dòng):

sudo docker ps
#若成功則顯示,可以看到對(duì)應(yīng)的容器ID、鏡像、端口映射、服務(wù)名稱(chēng)等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 訪(fǎng)問(wèn)本地Gitea服務(wù)

瀏覽器輸入主機(jī)IP+端口,即可訪(fǎng)問(wèn):

192.168.xx.xx:3000

初次進(jìn)入后,會(huì)顯示一個(gè)初始配置確認(rèn)頁(yè)面,如下圖所示,該配置已正常讀取docker-conpose配置,如果沒(méi)有特殊需求直接點(diǎn)擊立即安裝即可:

02440b34-bdfd-11ef-8084-92fbcf53809c.png

安裝完成后,注冊(cè)賬號(hào)并登錄即可正常使用(服務(wù)中注冊(cè)的第一個(gè)賬號(hào)默認(rèn)為管理員)。

025d9428-bdfd-11ef-8084-92fbcf53809c.png

在Gitea中,可以像其他代碼托管平臺(tái)一樣實(shí)現(xiàn)版本控制、分支管理、代碼審查、問(wèn)題跟蹤等功能。

Gitea同樣也支持將其他托管平臺(tái)代碼遷移過(guò)來(lái),進(jìn)行倉(cāng)庫(kù)備份:

026592e0-bdfd-11ef-8084-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9585

    瀏覽量

    86944
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4876

    瀏覽量

    69964
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    203

    瀏覽量

    16035
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    華碩Tinker edge R--gitea服務(wù)器的搭建教程

    概述 本篇文章是在 華碩AIoT國(guó)內(nèi)戰(zhàn)略合作伙伴--深圳風(fēng)火輪團(tuán)隊(duì)提供的開(kāi)發(fā)板 (華碩Tinker edge R)上,搭建一個(gè)本地gitea服務(wù)器。 Tinker Edge R是 華碩基于國(guó)產(chǎn)芯片
    的頭像 發(fā)表于 08-09 11:17 ?2089次閱讀

    Cadence本地庫(kù)搭建從0到1的過(guò)程

    本文將主要介紹Cadence本地庫(kù)搭建從0到1的過(guò)程,并提供搭建過(guò)程中所需要的安裝軟件。搭建Cadence本地庫(kù)的目的主要是為了方便元器件的
    的頭像 發(fā)表于 11-20 17:21 ?4523次閱讀
    Cadence<b class='flag-5'>本地</b>庫(kù)<b class='flag-5'>搭建</b>從0到1的過(guò)程

     華為云ServiceStage完美支持多個(gè)主流源碼托管倉(cāng)庫(kù)

    之稱(chēng)的Gitee(碼云),是開(kāi)源中國(guó)推出的專(zhuān)為開(kāi)發(fā)者提供穩(wěn)定、高效、安全的云端代碼托管以及軟件開(kāi)發(fā)協(xié)作平臺(tái),無(wú)論是個(gè)人、團(tuán)隊(duì)、或是企業(yè),都能夠用Gitee實(shí)現(xiàn)代碼
    發(fā)表于 08-03 13:58

    本地測(cè)試環(huán)境搭建

    本文主要介紹了本地測(cè)試環(huán)境搭建搭建一個(gè)本地測(cè)試環(huán)境無(wú)疑是個(gè)明智的選擇,再結(jié)合GitHub、Jenkins、Docker等工具,進(jìn)行持續(xù)集成、資源隔離,既可以快速的構(gòu)建、部署自己的項(xiàng)目,
    的頭像 發(fā)表于 01-31 16:01 ?3005次閱讀
    <b class='flag-5'>本地</b>測(cè)試環(huán)境<b class='flag-5'>搭建</b>

    如何搭建本地smtp服務(wù)器

    本文開(kāi)始闡述的闡述了搭建本地smtp服務(wù)器的教程,另外還介紹了基于CentOS搭建SMTP服務(wù)器的詳細(xì)教程。
    發(fā)表于 04-08 14:46 ?2w次閱讀
    如何<b class='flag-5'>搭建</b><b class='flag-5'>本地</b>smtp服務(wù)器

    上傳本地項(xiàng)目代碼到github

    GitHub是一個(gè)面向開(kāi)源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С謌it 作為唯一的版本庫(kù)格式進(jìn)行托管,故名GitHub。本文主要講解如何將本地代碼
    的頭像 發(fā)表于 11-14 16:45 ?1213次閱讀
    上傳<b class='flag-5'>本地</b>項(xiàng)目<b class='flag-5'>代碼</b>到github

    如何在Ubuntu 20.04安裝Gitea

    Gitea是用Go語(yǔ)言編寫(xiě)的自托管開(kāi)源git服務(wù)器。它是Gogs的分支。Gitea包含有文件編輯器,項(xiàng)目問(wèn)題跟蹤,用戶(hù)管理,通知,內(nèi)置Wiki等。
    的頭像 發(fā)表于 01-04 17:23 ?1854次閱讀

    【產(chǎn)品應(yīng)用】如何通過(guò)ZWS-IoT低代碼開(kāi)發(fā)平臺(tái)搭建一個(gè)環(huán)保系統(tǒng)

    使用ZWS-IoT低代碼開(kāi)發(fā)平臺(tái),可以快速搭建不同web應(yīng)用頁(yè)面,以及多個(gè)頁(yè)面的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)。本文將介紹通過(guò)ZWS-IoT低代碼開(kāi)發(fā)平臺(tái)
    的頭像 發(fā)表于 06-08 19:15 ?626次閱讀
    【產(chǎn)品應(yīng)用】如何通過(guò)ZWS-IoT低<b class='flag-5'>代碼</b>開(kāi)發(fā)<b class='flag-5'>平臺(tái)</b><b class='flag-5'>搭建</b>一個(gè)環(huán)保系統(tǒng)

    【產(chǎn)品應(yīng)用】如何通過(guò)ZWS-IoT低代碼開(kāi)發(fā)平臺(tái)搭建一個(gè)環(huán)保系統(tǒng)

    使用ZWS-IoT低代碼開(kāi)發(fā)平臺(tái),可以快速搭建不同web應(yīng)用頁(yè)面,以及多個(gè)頁(yè)面的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)。本文將介紹通過(guò)ZWS-IoT低代碼開(kāi)發(fā)平臺(tái)
    的頭像 發(fā)表于 07-31 16:59 ?651次閱讀
    【產(chǎn)品應(yīng)用】如何通過(guò)ZWS-IoT低<b class='flag-5'>代碼</b>開(kāi)發(fā)<b class='flag-5'>平臺(tái)</b><b class='flag-5'>搭建</b>一個(gè)環(huán)保系統(tǒng)

    本地電腦如何搭建云電腦,本地電腦搭建云電腦的步驟

    ? ? 工作中,不可避免的會(huì)用到云電腦,實(shí)現(xiàn)電腦連接能方便工作,局域網(wǎng)遠(yuǎn)程桌面控制軟件能幫助管理者解決,保障信息安全;提高工作效率;降低維護(hù)成本。今天小編跟大家講講本地電腦搭建云電腦的步驟
    的頭像 發(fā)表于 12-23 13:31 ?760次閱讀
    <b class='flag-5'>本地</b>電腦如何<b class='flag-5'>搭建</b>云電腦,<b class='flag-5'>本地</b>電腦<b class='flag-5'>搭建</b>云電腦的步驟

    Gitee:玩轉(zhuǎn)代碼托管與協(xié)作的高效指南

    這個(gè)國(guó)外的項(xiàng)目托管平臺(tái)。 Gitee 碼云是開(kāi)源中國(guó)推出的基于 Git 的代碼托管服務(wù)中心,網(wǎng)址是 https://gitee.com 。 Gitee 的使用方式和 GitHub 基
    的頭像 發(fā)表于 12-24 11:39 ?1370次閱讀
    Gitee:玩轉(zhuǎn)<b class='flag-5'>代碼</b><b class='flag-5'>托管</b>與協(xié)作的高效指南

    云服務(wù)器Flexus X實(shí)例,Docker集成搭建Gitea私有倉(cāng)庫(kù)

    Gitea 私有倉(cāng)庫(kù)是一款輕量級(jí)的自托管 Git 服務(wù),它提供了與 Github、Gitlab 等類(lèi)似的功能,但允許用戶(hù)在自己的服務(wù)器上部署和運(yùn)行,從而完全掌控代碼的存儲(chǔ)和訪(fǎng)問(wèn)權(quán)限。
    的頭像 發(fā)表于 12-29 15:51 ?343次閱讀
    云服務(wù)器Flexus X實(shí)例,Docker集成<b class='flag-5'>搭建</b><b class='flag-5'>Gitea</b>私有倉(cāng)庫(kù)

    云服務(wù)器 Flexus X 實(shí)例:部署 Gitea,擁有自己的 Git 倉(cāng)庫(kù),管理本地代碼

    、零售、金融、游戲等眾多領(lǐng)域的通用工作負(fù)載需求。本文旨在詳細(xì)闡述如何高效利用“云服務(wù)器 Flexus X 實(shí)例”,包括如何在其中從零開(kāi)始,通過(guò)安裝相關(guān)依賴(lài)、安裝 Docker、安裝 Gitea 等步驟,實(shí)現(xiàn)自己的 Git 倉(cāng)庫(kù),管理本地
    的頭像 發(fā)表于 01-07 16:59 ?294次閱讀
    云服務(wù)器 Flexus X 實(shí)例:部署 <b class='flag-5'>Gitea</b>,擁有自己的 Git 倉(cāng)庫(kù),管理<b class='flag-5'>本地</b><b class='flag-5'>代碼</b>

    代碼平臺(tái):快速搭建與優(yōu)化MES系統(tǒng),提升生產(chǎn)效率

    和交付應(yīng)用軟件,全方位降低軟件的開(kāi)發(fā)、配置、部署和培訓(xùn)的成本。 二、低代碼平臺(tái)搭建MES系統(tǒng)的優(yōu)勢(shì) 1、快速開(kāi)發(fā): 低代碼平臺(tái)提供了豐富的模
    的頭像 發(fā)表于 01-23 09:37 ?258次閱讀
    低<b class='flag-5'>代碼</b><b class='flag-5'>平臺(tái)</b>:快速<b class='flag-5'>搭建</b>與優(yōu)化MES系統(tǒng),提升生產(chǎn)效率

    AI算法托管平臺(tái)是什么

    AI算法托管平臺(tái)是一種提供AI模型運(yùn)行、管理和優(yōu)化等服務(wù)的云端或邊緣計(jì)算平臺(tái)。下面,AI部落小編帶您詳細(xì)了解AI算法托管平臺(tái)
    的頭像 發(fā)表于 03-06 10:22 ?227次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品