gogs安装与说明(docker)
前言:
作為一個(gè)開發(fā),少不了和git打交道,像github,gitee是很流行的git線上托管平臺(tái),而我們也搭建自己的git托管平臺(tái),有條件的可以使用gitlab,它對(duì)硬件有要求,像博主這種沒條件用虛擬機(jī)的,推薦使用gogs。
Gogs 的是一個(gè)由 Go 語言開發(fā)的、可以簡單、快速搭建自助 Git 服務(wù)。在宿主機(jī)上的安裝可以參考官網(wǎng):Gogs
不過在宿主機(jī)上直接安裝會(huì)麻煩一點(diǎn),需要自行安裝git工具,如果使用ssh還要安裝ssh服務(wù)器,如果使用源碼安裝,還可能需要go語言的編譯環(huán)境,所以,如果是自己或者是小團(tuán)隊(duì)使用,推薦使用docker來安裝
安裝
首先,我們要安裝docker,接著使用docker獲取gogs的鏡像:
# pull gogs鏡像
sudo docker pull gogs/gogs
當(dāng)然你也可以去Docker Hub上面下載需要的版本
Docker Hub
鏡像中已經(jīng)包換了git,ssh服務(wù)器等工具,無需我們安裝,我們只需使用鏡像創(chuàng)建容器即可:
# 在宿主機(jī)上創(chuàng)建掛在卷
$ mkdir /home/gogs
# 創(chuàng)建并運(yùn)行一個(gè)容器,
# 將宿主機(jī)的10022端口映射到容器的22端口,
# 將宿主機(jī)的13000端口映射到容器的3000端口,10022端口和13000端口可以根據(jù)自己的情況修改sudo docker run -d -p 10022:22 -p 13000:3000 -v /home/gogs:/data gogs/gogs
這里需要注意的是兩點(diǎn):
1、22端口是gogs的ssh服務(wù)端口,如果不開啟ssh服務(wù),可不做這個(gè)端口映射,3000是gogs應(yīng)用服務(wù)端口,這兩個(gè)端口可以修改,但是需要結(jié)合后續(xù)配置一同修改,這點(diǎn)在后面配置時(shí)來說明。2、這里做了一個(gè)卷映射,/data是容器內(nèi)部gogs的數(shù)據(jù)目錄,gogs后續(xù)的配置、git倉庫等等都在這個(gè)目錄中,我們將它映射到宿主中,方便數(shù)據(jù)保存以及配置的改動(dòng),比如我這里的/home/gogs,需要提前將目錄創(chuàng)建好:sudo mkdir /home/gogs。
容器成功運(yùn)行后,我們可以在瀏覽器通過宿主機(jī)的ip+13000端口打開gogs的首次運(yùn)行安裝程序 ,比如我這里是 http://192.168.209.128:13000
數(shù)據(jù)庫設(shè)置
gogs目前支持3種數(shù)據(jù)庫:MySQL、PostgreSQL、SQLite3
如果沒有可用的數(shù)據(jù)庫,可以選擇SQLite3:
基本應(yīng)用設(shè)置:
應(yīng)用名稱:可以換成自定義名稱倉庫根目錄:使用默認(rèn)就行了,默認(rèn)/data/git/gogs-repositories,如果采用了數(shù)據(jù)卷映射,比如我這里因?yàn)?home/gogs映射/data,所以這個(gè)目錄在宿主機(jī)中的地址是/home/gogs/git/gogs-repositories運(yùn)行系統(tǒng)用戶:不要修改,默認(rèn)就是git用戶,修改可能會(huì)有問題域名:使用ssh時(shí)使用的域名或者IP(看后文使用說明)SSH 端口號(hào):gogs啟用ssh時(shí)使用的端口號(hào),默認(rèn)22端口,如果修改了這個(gè)端口號(hào),那么在上面創(chuàng)建容器時(shí)要對(duì)應(yīng)的將10022端口映射到修改的端口號(hào),如果不啟用ssh,則置空HTTP 端口號(hào):gogs應(yīng)用啟動(dòng)的http端口,默認(rèn)3000,如果修改了這個(gè)端口號(hào),那么在上面創(chuàng)建容器時(shí)要對(duì)應(yīng)的將13000端口映射到修改的端口號(hào)應(yīng)用 URL:即打開應(yīng)用的url地址,因?yàn)檫@里采用了docker,所以我們要修改成宿主機(jī)的地址轉(zhuǎn)發(fā)去訪問,比如這里我的宿主機(jī)地址:192.168.209.128,它的13000端口會(huì)轉(zhuǎn)發(fā)到容器的3000端口,所以這里填:http://192.168.209.128:13000/日志路徑:gogs的日志保存路徑,默認(rèn)就行了
注:更多配置在/data/gogs/conf/app.ini中,如果采用了數(shù)據(jù)卷映射,比如我這里因?yàn)?home/gogs映射/data,所以這個(gè)文件在宿主機(jī)中的/home/gogs/gogs/conf/app.ini,更多說明見后文
使用說明
安裝完成之后,就可以使用了,默認(rèn)情況下,我們需要自己注冊(cè)一個(gè)賬號(hào),然后登陸:
?注冊(cè)登錄之后,我們可以在右上角的+號(hào)創(chuàng)建一個(gè)倉庫:
例如:
?創(chuàng)建完成之后大概是這樣子的:
?默認(rèn)情況下是可以使用http進(jìn)行g(shù)it clone的,當(dāng)然我們也可以使用https,不過需要做更多的配置,這時(shí)需要修改/data/gogs/conf/app.ini文件中的配置了,因?yàn)闆]有cert證書,所以就不演示了。
另外,因?yàn)槲覀儐⒂昧藄sh,我們也可以使用ssh來操作:
?其中,我們上面安裝=》應(yīng)用基礎(chǔ)設(shè)置中的【域名】配置就是上圖中紅色方框中的 git@域名:XXXX/XXX 中的域名部分
注意,如果你直接使用這個(gè)ssh地址去clone,會(huì)讓你輸入git的密碼:git@192.168.209.128's password:
這里可能你輸入任何密碼都是錯(cuò)的,哪怕輸入對(duì)了密碼,可能也提示目錄不存在,什么原因?
首先,說明一下,ssh的連接地址是 user@host:path 格式,對(duì)于上面的demo倉庫中,git是用戶名,host是宿主機(jī)地址(192.168.209.128),test/demo.git是倉庫路徑。
那端口呢?熟悉ssh命令的話就會(huì)知道,ssh命令如果要指定端口,需要使用-p選項(xiàng)來指定,否則使用的是默認(rèn)端口22.
再來看看,上面說過,因?yàn)槲覀兊膅ogs是部署在docker上,對(duì)于ssh,我們使用宿主機(jī)的10022端口轉(zhuǎn)發(fā)到容器的22端口,那使用ssh進(jìn)行clone時(shí),我們的宿主機(jī)地址是192.168.209.128,因?yàn)闆]有指定端口,所以連接的端口是宿主機(jī)的22端口,但是我們的宿主機(jī)的22端口沒有辦法到容器的22端口呀!!!所以他會(huì)認(rèn)為git用戶是宿主機(jī)的,如果宿主機(jī)沒有創(chuàng)建git用戶,那么輸入任何密碼都是錯(cuò)的,哪怕密碼對(duì)了,也可能因?yàn)槲丛谒拗鳈C(jī)安裝gogs或者路徑不存在而訪問失敗。
那是不是說我們?cè)赿ocker上部署的gogs不能使用ssh?其實(shí)是可以的,你可以將宿主的22端口轉(zhuǎn)發(fā)到容器的22端口。另外,還有一個(gè)做法,這里只是因?yàn)?git@域名:XXXX/XXX 這種格式進(jìn)行clone不能指定端口而不能使用,我們可以使用另外一種類似http請(qǐng)求Url的ssh格式:ssh://user@host:port/path,
例如這里demo倉庫:git clone ssh://git@192.168.209.128:10022/test/demo.git
不過這里我們clone還是失敗了,大致的意思是,我們沒有配置ssh秘鑰。
ssh秘鑰
ssh秘鑰生成及使用參考:SSH公/私秘鑰的生成及使用
創(chuàng)建完成后,我們打開.ssh目錄下id_rsa.pub文件(公鑰文件),復(fù)制里面的全部內(nèi)容,然后打開gogs控制面板=》右上角用戶配置=》SSH秘鑰=》新增秘鑰:
?保存后,我們就可以使用ssh://協(xié)議去clone了,
如果想在另一臺(tái)新電腦使用ssh,直接復(fù)制.ssh目錄下公鑰文件和私鑰文件,到新電腦的.ssh目錄下就可以使用ssh協(xié)議訪問項(xiàng)目了
去掉gogs的注冊(cè)按鈕?
為了安全考慮,對(duì)外的情況下,建議去掉gogs的注冊(cè)按鈕 。
修改配置文件
/home/git/gogs/custom/conf 目錄下的 app.ini文件
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = true
DISABLE_REGISTRATION = false ### 把此處的false改成 true,重啟,搞定
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
解決gogs網(wǎng)頁打開慢?
在install的安裝界面,禁用Gravatar服務(wù);或者在配置文件中禁用gravatar服務(wù),使用本地頭像;?
vim gogs/conf/app.ini
[picture]
DISABLE_GRAVATAR = true
ENABLE_FEDERATED_AVATAR = true
總結(jié)
以上是生活随笔為你收集整理的gogs安装与说明(docker)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ue 编写linux脚本,UltraEd
- 下一篇: linux view查看日志命令,lin