Centos7下Docker安裝Gogs搭建git服務器


 

 

gihub地址:https://github.com/gogs/gogs

gogs官網:https://gogs.io/

gihub官方docker安裝gogs方法:https://github.com/gogs/gogs/tree/master/docker

我這邊另外一篇centos7安裝docker的文章:https://www.cnblogs.com/Sungeek/p/9182433.html

搭建環境:centos7+docker+git+Mariadb

 

最近公司內部需要搭建一個git,我原本是搭建最原始的git+Gitosis(管理公鑰),然后公司大牛講解了一波docker也講到了gogs然后知道了這個git開源服務很簡約,輕巧

這篇文章將介紹如何使用docker來搭建Gogs源碼管理倉庫,也會在搭建途中把我遇到的問題解決方法都列舉出來

 

目錄:

Docker下載鏡像

docker運行gogs容器

安裝Mariadb

配置gogs

驗證安裝

配置SSH登錄

配置文件配置強制登錄才能查看其他頁面

 

1.Docker下載鏡像

首先需要再docker官網hub.docker.com上搜索gogs,找到鏡像地址:hub.docker.com/r/gogs/gogs/tags/。然后獲取pull到本地centos7服務器,然后tag做下便簽方便后面使用。

▲注意:這里我加了registry.docker-cn.com前綴,使用國內的docker鏡像庫,速度更快一些。

[root@localhost ~]# docker pull registry.docker-cn.com/gogs/gogs:0.11.53

[root@localhost ~]# docker tag registry.docker-cn.com/gogs/gogs:0.11.53 gogs:0.11.53
[root@localhost ~]# docker rmi registry.docker-cn.com/gogs/gogs:0.11.53;
Untagged: registry.docker-cn.com/gogs/gogs:0.11.53 Untagged: registry.docker-cn.com/gogs/gogs@sha256:3b2bc27e1c786d84cbd3c28010e0f97448b04effb9f0ef2b91ca73445da20eb1

doker 的這些命令不懂可以參考我前面的docker文章里面的命令大全!

2.docker運行gogs容器

說明:3000端口是http端口,8031是映射端口,所以要是想不加端口后綴可以映射80端口

[root@localhost ~]# docker run -d --name=gogs -p 8031:3000 -p 8032:22 -v /docker/gogs:/data gogs:0.11.53
e75249399222383e7f4e7a3715e6e45569d31862ee7ef01d5ffda69d845c9663

查詢一下是否運行

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                          NAMES
e75249399222        gogs:0.11           "/app/gogs/docker/..."   42 seconds ago      Up 41 seconds       0.0.0.0:8032->22/tcp, 0.0.0.0:8031->3000/tcp   gogs

如果想配置服務器斷電了自啟動docker容器:

[root@localhost ~]# docker stop e75249399222
e75249399222
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]# docker rm e75249399222 e75249399222 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]# docker run -dit --name=gogs -p 8031:3000 -p 8032:22 -v /data/docker/gogs:/data --restart unless-stopped gogs:0.11.53 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 977c404a64cd gogs:0.11 "/app/gogs/docker/..." 4 seconds ago Up 3 seconds 0.0.0.0:8032->22/tcp, 0.0.0.0:8031->3000/tcp gogs [root@localhost ~]# 

如上面命令所示,我前面已經啟動了這個容器需要先停止再刪除這個容器再配置開機啟動

官方文檔說明:https://docs.docker.com/v17.09/engine/admin/start-containers-automatically/

 

3.安裝Mariadb

[root@localhost ~]# yum install -y mariadb mariadb-server

開機自啟動

[root@localhost ~]# Systemctl enable mariadb

運行服務

[root@localhost ~]# Systemctl start mariadb

查看Mariadb是否安裝成功

添加一下數據庫的3306端口防火牆策略

[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

創建一個gogs庫並設置為utf8的字符編碼格式

create database gogs character set utf8 collate utf8_bin;

show databases;查看數據庫

授予本地訪問權限:

創建賬戶並且授權設置密碼

grant all privileges on gogs.* to gogs@localhost identified by 'gogs';

給來自loclhost的用戶gogs分配可對數據庫gogs所有表進行所有操作的權限,並且設定密碼為gogs

 

授予遠程訪問權限:

grant all privileges on *.* to 'gogs'@'%' with grant option;

刷新

flush privileges;

 select user, host from user; 查詢用戶是否創建

# mysql -u root -p /*輸入密碼進入*/  

/*第一個方式:直接編輯數據庫字段*/  

MariaDB [(none)]> use mysql;  

MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root';  

MariaDB [mysql]> flush privileges;  

MariaDB [mysql]> exit  

/*第二個方式:修改密碼,不用進入mysql*/  

MariaDB [(none)]> SET password for 'root'@'localhost'=password('newpassword');  

MariaDB [(none)]> exit; 

4.配置gogs

上面映射了兩個端口,其中8031是http端口號,8032是ssh端口號。假設安裝的服務器IP是192.168.1.64,則用瀏覽器打開http://192.168.1.64:8031,自動跳轉至配置頁面,然后按下面這樣配置。

注意:這里注意不要修改上面的3000端口號。

提示:如果配置錯了想要重新安裝,可以執行:docker stop gogs; docker rm gogs; rm -rf /docker/gogs;

配置完直接點擊安裝

 

5.驗證安裝

配置完成后,會自動跳轉到登錄頁:http://192.168.1.64:8031/user/login。這個URL地址也就是上節配置的應用URL(非域名,域名的配置影響的是SSH)。

注冊登錄成功后,可以創建一個helloworld倉庫,可以看到如下界面:

 

6.配置SSH登錄

安裝完成后,在客戶端先安裝git軟件,然后打開git bash,嘗試推送到倉庫:

touch README.md
git init
git add README.md
git commit -m "first commit" git remote add origin http://192.168.1.64:8031/sungeek/helloworld.git git push -u origin master

此時,執行下面幾個步驟:

1. 打開Git Bash,執行cat ~/.ssh/id_rsa.pub。查看本地的id_rsa.pub文件內容。

2. 如果沒有文件則使用命令,創建密鑰(將1838370@qq.com替換成你的gogs賬號):

ssh-keygen -t rsa -C "1838370@qq.com"

3. 再次執行cat ~/.ssh/id_rsa.pub,可以看到類似下面的輸出:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGG9YIm0vb8MwCZ0AvsQ679JPYtwLGFP0yT8WW+UOpYR46+k+5KGz3oI0gC910es0LZtrUbAlT34IiR2iEAiGhMXe/xfA/hH8A6UL0lvqcz9EYOcKhzmlONzyf3nojkVCi89tRQlGqTncnPt1AXFySXPVKgV3QjSFKRLcvsZso71Xw45vPwPazmq3Ji+v8k9+VTdT9GI1wT/v9Kb54bmfX7kCCFcrAZUDnFK6T0YZyjIDHQo5dThXw58Ks4/CAyODW983Hd4agAvhBDnWmja8CUCsj+lOkaUzUBZHAYB0WdfAfykowNcbeuOsgoTSkwVjBkdBWVaEH725/QxpFnAuJ xiewanpeng@25qp.cn

 

7、配置文件配置強制登錄才能查看其他頁面

修改配置文件

/gogs/conf/app.ini 

[service]
REQUIRE_SIGNIN_VIEW = true

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM