Docker系列——利用gogs搭建屬於本身的git服務

gogs簡介

Gogs的目標是打造一個最簡單、最快速和最輕鬆的方式搭建自助Git服務。使用Go語言開發使得Gogs可以經過獨立的二進制分發,而且支持Go語言支持的全部平臺,包括 Linux、Mac OS X、Windows 以及 ARM 平臺。html

功能特性

  • 支持活動時間線
  • 支持 SSH 以及 HTTP/HTTPS 協議
  • 支持 SMTP、LDAP 和反向代理的用戶認證
  • 支持反向代理子路徑
  • 支持用戶、組織和倉庫管理系統
  • 支持添加和刪除倉庫協做者
  • 支持倉庫和組織級別 Web 鉤子(包括 Slack 集成)
  • 支持倉庫 Git 鉤子和部署密鑰
  • 支持倉庫工單(Issue)、合併請求(Pull Request)、Wiki 以及保護分支
  • 支持遷移和鏡像倉庫以及它的 Wiki
  • 支持在線編輯倉庫文件和 Wiki
  • 支持自定義源的 Gravatar 和 Federated Avatar
  • 支持 Jupyter Notebook
  • 支持郵件服務
  • 支持後臺管理面板
  • 支持 MySQL、PostgreSQL、SQLite三、MSSQL 和 TiDB(實驗性支持) 數據庫
  • 支持多語言本地化(22 種語言)

部署環境

拉取鏡像

經過docker命令拉取gogs鏡像mysql

使用命令操做以下:git

docker pull gogs/gogssql

命令行操做以下所示:
docker

新建gogs目錄

在/home/software下新建文件夾gogs
數據庫

  • 進入/home/software路徑下新建,命令以下:

mkdir gogs安全

  • 在根目錄下直接新建,命令以下:

mkdir home/software/gogs服務器

  • 建立多級目錄,命令以下:

mkdir -p software/gogs網絡

開放服務器端口

配置端口在服務器的安全組中進行配置,開放的端口,用於gogs/docker服務端口進行映射。ssh

啓動服務

啓動服務命令以下:

docker run --name=gogs -p 8234:22 -p 8235:3000 -v /home/software/gogs:/data gogs/gogs

參數說明:

  • -p: 端口映射,將容器的22端口映射到宿主機的1006端口,將容器的3000端口映射到宿主機的1007端口
  • -name: 指定容器名稱
  • -net: 將容器加入backend網絡,目的是爲了可以鏈接backend網絡中的mysql數據庫
  • -v: 數據卷掛載, 用於將容器和數據分離

啓動操做以下所示:

安裝配置

經過地址訪問,格式爲:http://服務器ip+映射端口/install,
如:http://101.111.22.31:8235/install,
訪問進入以下頁面,進行配置數據:

  1. 配置數據庫
    數據庫類型選擇爲SQLite3,免配置,直接使用。

  2. 基本信息配置
    基本信息中,配置信息以下所示:

  • 應用名稱:支持自定義,可維護成本身的專屬名稱
  • 倉庫根目錄:默認便可
  • 運行系統用戶:也默認便可
  • 域名:服務器的公網地址,如:http://101.111.22.31
  • SSH端口號:服務器的映射端口,如:8234
  • HTTP端口:監聽端口默認爲3000
  • 應用URL:公網地址+映射端口,如:http://101.111.22.31:8235
  • 日誌路徑:默認便可
  1. 可選配置
    可選配置,看我的所需,其餘暫時不配置,配置管理員帳號便可。

gogs使用

配置完成後,訪問地址,進入到登陸頁,以下所示:

註冊&登陸

在以前配置基礎信息時,沒配置管理員帳號的話,在登陸頁,註冊個帳號即可以登陸;若是有配置管理員帳號,使用配置的帳號直接登陸便可。註冊頁面以下:

控制面板

控制面板界面以下所示:

  • 左側:我的的操做記錄,好比:提交代碼,建立合併請求,請求關閉...
  • 右側:個人倉庫:屬於本身的倉庫,擁有管理權限
  • 右側:參與協做的倉庫:參與的倉庫,沒有全部權,權限按倉庫所屬人進行分配

倉庫管理

倉庫管理界面以下所示:

在該頁面,能夠操做以下設置:

  • 基本設置,可配置倉庫名稱、可見性等
  • 管理協做者,添加倉庫的協做者,一塊兒維護倉庫內容
  • 管理分支,配置默認分支和保護分支
  • 管理Web鉤子,Gogs上發生指定事件時對指定 URL 發送 POST 通知
  • 管理Git鉤子
  • 管理部署密鑰
  • 轉移倉庫全部權

工單管理

工單管理界面以下所示:

在該頁面,能夠查看本身的以及指派給本身的工單,也能夠查看工單狀態,便捷管理。

合併請求

合併請求界面以下所示:

在該頁面,能夠查看合併請求的狀態。

建立倉庫

建立倉庫界面以下所示:

點擊面板中的+號,選擇建立倉庫,便可進入到該頁面。具體建立本身操做一波就能夠了,很簡單。

代碼操做

  • 克隆代碼
    使用以下命令操做:

git clone http://101.111.22.31:8235/yihuqingjiu/Auto_Test.git

截圖以下:

  • 提交代碼
    提交代碼的操做,能夠祥見這篇博文:Git基本操做命令合集,這裏就不贅述了。提交代碼後,能夠在面板中查看,以下所示:

問題總結

  1. 配置gogs基礎信息時,想使用本地的Mysql數據庫,但一直提示權限錯誤,沒能解決,最終仍是使用了免配置的sqlite3。

  2. 想使用ssh方式拉取代碼,在服務器端,生成的公鑰,一直提示失敗,也沒能解決,報錯提示信息:invalid key format: illegal base64 data at input byte 171。

以上就是今天分享的內容,若有博友遇到如上2個問題,望告知一二,祝你們雙節快樂。

相關文章
相關標籤/搜索