日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

gogs安装与说明(docker)

發布時間:2023/12/2 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 gogs安装与说明(docker) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

作為一個開發,少不了和git打交道,像github,gitee是很流行的git線上托管平臺,而我們也搭建自己的git托管平臺,有條件的可以使用gitlab,它對硬件有要求,像博主這種沒條件用虛擬機的,推薦使用gogs。

Gogs 的是一個由 Go 語言開發的、可以簡單、快速搭建自助 Git 服務。在宿主機上的安裝可以參考官網:Gogs

不過在宿主機上直接安裝會麻煩一點,需要自行安裝git工具,如果使用ssh還要安裝ssh服務器,如果使用源碼安裝,還可能需要go語言的編譯環境,所以,如果是自己或者是小團隊使用,推薦使用docker來安裝


安裝

首先,我們要安裝docker,接著使用docker獲取gogs的鏡像:

# pull gogs鏡像
sudo docker pull gogs/gogs

當然你也可以去Docker Hub上面下載需要的版本

Docker Hub

鏡像中已經包換了git,ssh服務器等工具,無需我們安裝,我們只需使用鏡像創建容器即可:

# 在宿主機上創建掛在卷
$ mkdir  /home/gogs
# 創建并運行一個容器,
# 將宿主機的10022端口映射到容器的22端口,
# 將宿主機的13000端口映射到容器的3000端口,10022端口和13000端口可以根據自己的情況修改sudo docker run -d -p 10022:22 -p 13000:3000 -v /home/gogs:/data gogs/gogs

這里需要注意的是兩點:

1、22端口是gogs的ssh服務端口,如果不開啟ssh服務,可不做這個端口映射,3000是gogs應用服務端口,這兩個端口可以修改,但是需要結合后續配置一同修改,這點在后面配置時來說明。2、這里做了一個卷映射,/data是容器內部gogs的數據目錄,gogs后續的配置、git倉庫等等都在這個目錄中,我們將它映射到宿主中,方便數據保存以及配置的改動,比如我這里的/home/gogs,需要提前將目錄創建好:sudo mkdir /home/gogs。

容器成功運行后,我們可以在瀏覽器通過宿主機的ip+13000端口打開gogs的首次運行安裝程序 ,比如我這里是 http://192.168.209.128:13000


數據庫設置

gogs目前支持3種數據庫:MySQL、PostgreSQL、SQLite3

如果沒有可用的數據庫,可以選擇SQLite3:


基本應用設置:

應用名稱:可以換成自定義名稱倉庫根目錄:使用默認就行了,默認/data/git/gogs-repositories,如果采用了數據卷映射,比如我這里因為/home/gogs映射/data,所以這個目錄在宿主機中的地址是/home/gogs/git/gogs-repositories運行系統用戶:不要修改,默認就是git用戶,修改可能會有問題域名:使用ssh時使用的域名或者IP(看后文使用說明)SSH 端口號:gogs啟用ssh時使用的端口號,默認22端口,如果修改了這個端口號,那么在上面創建容器時要對應的將10022端口映射到修改的端口號,如果不啟用ssh,則置空HTTP 端口號:gogs應用啟動的http端口,默認3000,如果修改了這個端口號,那么在上面創建容器時要對應的將13000端口映射到修改的端口號應用 URL:即打開應用的url地址,因為這里采用了docker,所以我們要修改成宿主機的地址轉發去訪問,比如這里我的宿主機地址:192.168.209.128,它的13000端口會轉發到容器的3000端口,所以這里填:http://192.168.209.128:13000/日志路徑:gogs的日志保存路徑,默認就行了

注:更多配置在/data/gogs/conf/app.ini中,如果采用了數據卷映射,比如我這里因為/home/gogs映射/data,所以這個文件在宿主機中的/home/gogs/gogs/conf/app.ini,更多說明見后文


使用說明

安裝完成之后,就可以使用了,默認情況下,我們需要自己注冊一個賬號,然后登陸:

?注冊登錄之后,我們可以在右上角的+號創建一個倉庫:

例如:

?創建完成之后大概是這樣子的:

?默認情況下是可以使用http進行git clone的,當然我們也可以使用https,不過需要做更多的配置,這時需要修改/data/gogs/conf/app.ini文件中的配置了,因為沒有cert證書,所以就不演示了。

另外,因為我們啟用了ssh,我們也可以使用ssh來操作:

?其中,我們上面安裝=》應用基礎設置中的【域名】配置就是上圖中紅色方框中的 git@域名:XXXX/XXX 中的域名部分

注意,如果你直接使用這個ssh地址去clone,會讓你輸入git的密碼:git@192.168.209.128's password:

這里可能你輸入任何密碼都是錯的,哪怕輸入對了密碼,可能也提示目錄不存在,什么原因?

首先,說明一下,ssh的連接地址是 user@host:path 格式,對于上面的demo倉庫中,git是用戶名,host是宿主機地址(192.168.209.128),test/demo.git是倉庫路徑。

那端口呢?熟悉ssh命令的話就會知道,ssh命令如果要指定端口,需要使用-p選項來指定,否則使用的是默認端口22.

再來看看,上面說過,因為我們的gogs是部署在docker上,對于ssh,我們使用宿主機的10022端口轉發到容器的22端口,那使用ssh進行clone時,我們的宿主機地址是192.168.209.128,因為沒有指定端口,所以連接的端口是宿主機的22端口,但是我們的宿主機的22端口沒有辦法到容器的22端口呀!!!所以他會認為git用戶是宿主機的,如果宿主機沒有創建git用戶,那么輸入任何密碼都是錯的,哪怕密碼對了,也可能因為未在宿主機安裝gogs或者路徑不存在而訪問失敗。

那是不是說我們在docker上部署的gogs不能使用ssh?其實是可以的,你可以將宿主的22端口轉發到容器的22端口。另外,還有一個做法,這里只是因為 git@域名:XXXX/XXX 這種格式進行clone不能指定端口而不能使用,我們可以使用另外一種類似http請求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公/私秘鑰的生成及使用

創建完成后,我們打開.ssh目錄下id_rsa.pub文件(公鑰文件),復制里面的全部內容,然后打開gogs控制面板=》右上角用戶配置=》SSH秘鑰=》新增秘鑰:

?保存后,我們就可以使用ssh://協議去clone了,

如果想在另一臺新電腦使用ssh,直接復制.ssh目錄下公鑰文件和私鑰文件,到新電腦的.ssh目錄下就可以使用ssh協議訪問項目了


去掉gogs的注冊按鈕?

為了安全考慮,對外的情況下,建議去掉gogs的注冊按鈕 。

修改配置文件

/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網頁打開慢?

在install的安裝界面,禁用Gravatar服務;或者在配置文件中禁用gravatar服務,使用本地頭像;?

vim gogs/conf/app.ini
[picture]
DISABLE_GRAVATAR        = true
ENABLE_FEDERATED_AVATAR = true

總結

以上是生活随笔為你收集整理的gogs安装与说明(docker)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。