Docker部署(四):Gogs

前言

GitHub已經(jīng)成為首選的代碼托管平臺,因為它又很多很棒的功能,操作簡單,幾乎所有的開發(fā)者都喜歡它。但如果你正在寫一個Project, 不想讓別人看到你的代碼, 該怎么辦呢?

Github上可以購買私人的倉庫, 但是對于我們學(xué)生黨來說,是不會也沒有必要花這個錢的, 我們完全可以自己動手創(chuàng)建一個git私人服務(wù)器。Gitlab 和 Gogs 這兩個都是非常棒的,功能上都跟github差不多.Gogs使用 Go 語言開發(fā)能夠通過獨立的二進制分發(fā),并且支持 Go 語言支持的 所有平臺,包括 Linux、Mac OS X、Windows 以及 ARM 平臺。Gogs占用資源少,更加的輕量化,界面也比較美觀。

特性 Gogs Gitlab Github
Dashboard & File Browser Y Y Y
Issue Tracking, Milestones & Commit keywords Y Y Y
Organizations support N Y Y
Wiki N Y Y
Code Review N Y Y
Code Snippets N Y Y
Web Hooks Y Y Y
Git Hooks Y * Enterprise * Enterprise
LDAP Login Y Y Y
LDAP Group Sync N * Enterprise * Enterprise
Branded Login Page N * Enterprise * Enterprise
Language Go Ruby Ruby
Platform Cross-Platform Linux * Virtual Machine
License MIT MIT Proprietary
Resource Usage Low Medium/High Medium/High

安裝步驟

  • 新建 git 用戶
  • 創(chuàng)建Volume卷映射路徑
  • 創(chuàng)建 gogs數(shù)據(jù)庫
  • 構(gòu)建Gogs 容器
  • 配置web
  • (可選) nginx反向代理配置

注意, Gogs運行需要MySQL服務(wù)器或者SQLite數(shù)據(jù)庫; 如果沒有可以翻看我這之前的博客 Docker部署(二):MySQL數(shù)據(jù)庫 or 自行安裝.

新建用戶

Gogs默認以git用戶運行, 雖然我們用的 Docker 但是為了與Gogs保持一致,這一步操作很重要,具體我會在后面的的文章會講解.

$ su adduser git

git 用戶創(chuàng)建完成后,可以用su git登錄,使用'cd ~'切換到用戶目錄.

創(chuàng)建Volume卷映射路徑

就在當前 git 用戶的目錄下面新建一個 gogs 目錄來映射Volume保存gogs的所有數(shù)據(jù).

$ mkdir  ~/gogs

創(chuàng)建gogs數(shù)據(jù)庫

在構(gòu)建Gogs容器前,讓我們做完最后一個準備步驟,就是創(chuàng)建Gogs容器依賴的數(shù)據(jù)庫gogs 然后創(chuàng)建一個新用戶gogs,并將gogs數(shù)據(jù)庫的所有權(quán)限都賦予該用戶.

現(xiàn)在我們還以git用戶的身份登錄著,我們現(xiàn)在要退出git 用戶并切換到 root.

$ exit    
$ su docker exec -it mysql mysql -u root -p
> # 輸入密碼
> create database gogs;
> create user 'gogs'@'localhost' identified by '密碼';
> grant all privileges on gogs.* to 'gogs'@'localhost';
> flush privileges;
> exit;

構(gòu)建Gogs 容器

root 下執(zhí)行Gogs的容器構(gòu)建.

$ docker run --name=gogs -d -v ~git/gogs:/data -p 10022:22 -p 3000:3000 --link=mysql:db gogs/gogs

--link 屬性: 容器互聯(lián). 比如: --link=mysql:<font color='red'>db</font>, 連接 Docker部署(二):MySQL數(shù)據(jù)庫 這篇博客中創(chuàng)建的name=mysql 的MySQL容器, 標記紅色的 db 相當于在Gogs容器中的/etc/hosts文件中增加一個額外的name主機名,這個名字為mysql的容器的IP地址的別名。這使得容器的內(nèi)部進程可以訪問主機名為mysql的容器而不用知道它的ip.

配置web

打開Chrome輸入http://ip:3000 就能看到gogs的各項配置了.

數(shù)據(jù)庫類型: MySQL

數(shù)據(jù)庫主機: db:3306

數(shù)據(jù)庫用戶: gogs

...

域名: ip或者域名

ssh端口: 10022 ssh端口這個可以查看構(gòu)建命令中的-p, 或者在構(gòu)建的時候指定你自己的端口即可,*** 但是不能為22 端口*** 原因不用我說都應(yīng)該知道.

HTTP 端口號: 3000

應(yīng)用URL: http://ip:3000/

可選配置中,你可以根據(jù)自己的需要設(shè)置既可.
然后點立即安裝就大功告成了.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,961評論 0 7
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • 回憶的紋路,伸向故鄉(xiāng) 文:冰凌 初冬,陽光爬進窗臺,跌落滿地的溫暖 小屋,幾抹綠,努力地給冬天講春天的故事 捧起的...
    凌兒的天空閱讀 169評論 2 4
  • 獨。 唯一。特別。 犬好斗,獨而不群。 莊子曰:天之生是使獨也。 吳均《與朱元思書》“風(fēng)煙俱凈,天山共色。從流飄蕩...
    幽小窗閱讀 300評論 20 12

友情鏈接更多精彩內(nèi)容