Centos7使用Docker安装Gogs源码git仓库

Posted sungeek

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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镜像库,速度更快一些。

[[email protected] ~]# docker pull registry.docker-cn.com/gogs/gogs:0.11.53

技术分享图片

[[email protected] ~]# docker tag registry.docker-cn.com/gogs/gogs:0.11.53 gogs:0.11
[[email protected] ~]# 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/[email protected]:3b2bc27e1c786d84cbd3c28010e0f97448b04effb9f0ef2b91ca73445da20eb1

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

2.docker运行gogs容器

[[email protected] ~]# docker run -d --name=gogs -p 8031:3000 -p 8032:22 -v /docker/gogs:/data gogs:0.11
e75249399222383e7f4e7a3715e6e45569d31862ee7ef01d5ffda69d845c9663

技术分享图片

查询一下是否运行

[[email protected] ~]# 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容器:

[[email protected] ~]# docker stop e75249399222
e75249399222
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[[email protected] ~]# docker rm e75249399222
e75249399222
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[[email protected] ~]# docker run -dit --name=gogs -p 8031:3000 -p 8032:22 -v /docker/gogs:/data --restart unless-stopped gogs:0.11
977c404a64cd8a2bd27f2d186f591f558441a55ca425906cde8ca8697a091b7f
[[email protected] ~]# 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
[[email protected] ~]# 

如上面命令所示,我前面已经启动了这个容器需要先停止再删除这个容器再配置开机启动

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

技术分享图片

 

3.安装Mariadb

[[email protected] ~]# yum install -y mariadb mariadb-server

技术分享图片

开机自启动

[[email protected] ~]# Systemctl enable mariadb

技术分享图片

运行服务

[[email protected] ~]# Systemctl start mariadb

技术分享图片

查看Mariadb是否安装成功

技术分享图片

添加一下数据库的3306端口防火墙策略

[[email protected] ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[[email protected] ~]# firewall-cmd --reload

创建一个gogs库并设置为utf8的字符编码格式

create database gogs character set utf8 collate utf8_bin;

show databases;查看数据库

技术分享图片

技术分享图片

授予本地访问权限:

创建账户并且授权设置密码

grant all privileges on gogs.* to [email protected] 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. 如果没有文件则使用命令,创建密钥(将[email protected]替换成你的gogs账号):

ssh-keygen -t rsa -C "[email protected]"

3. 再次执行cat ~/.ssh/id_rsa.pub,可以看到类似下面的输出:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGG9YIm0vb8MwCZ0AvsQ679JPYtwLGFP0yT8WW+UOpYR46+k+5KGz3oI0gC910es0LZtrUbAlT34IiR2iEAiGhMXe/xfA/hH8A6UL0lvqcz9EYOcKhzmlONzyf3nojkVCi89tRQlGqTncnPt1AXFySXPVKgV3QjSFKRLcvsZso71Xw45vPwPazmq3Ji+v8k9+VTdT9GI1wT/v9Kb54bmfX7kCCFcrAZUDnFK6T0YZyjIDHQo5dThXw58Ks4/CAyODW983Hd4agAvhBDnWmja8CUCsj+lOkaUzUBZHAYB0WdfAfykowNcbeuOsgoTSkwVjBkdBWVaEH725/QxpFnAuJ [email protected]

 技术分享图片

Sungeek博客
一名运维小菜鸟
http://www.cnblogs.com/Sungeek/

感谢阅读,希望这篇文章能给你带来帮助!



以上是关于Centos7使用Docker安装Gogs源码git仓库的主要内容,如果未能解决你的问题,请参考以下文章

基于ansible在远程centos服务器docker环境安装docker-gogs

Docker安装gitea

centos7使用Gogs搭建Git服务器

用gogs轻松搭建个人的git服务器

Docker的安装以及使用Docker安装jenkins,gogs,tomcat

Docker搭建Gogs