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

Centos7使用Docker安装Gogs搭建git服务器的更多相关文章

  1. Windows 使用 Gogs 搭建 Git 服务器(转)

    Windows 使用 Gogs 搭建 Git 服务器   随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在wind ...

  2. Windows 使用 Gogs 搭建 Git 服务器

    随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...

  3. docker 安装 gogs(go git server) 及问题解决

    docker安装gogs 参考官方说明 gogs mysql 支持 运行一个mysql image docker run --name gogs-mysql -e MYSQL_ROOT_PASSWOR ...

  4. centos7使用Gogs搭建Git服务器

    一.初次接触Gogs,记录一下搭建过程 二.平台环境 Linux: CentOS7.5.1804 MySQL: 5.6.35 安装步骤: linux服务器新建git用户: 下载.解压gogs安装包: ...

  5. 用gogs搭建git服务器

    Gogs 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 G ...

  6. 使用Gogs搭建Git服务器

    Git现在基本上已经代替SVN成为主流的源码管理工具了,我在之前的文章使用GIT进行源码管理--GIT托管服务中介绍过一些国内外的主流在线Git服务,虽然这些在线的Git服务大多非常好用,但是有的时候 ...

  7. Centos7 用gogs搭建git仓库

    0.安装步骤 先安装依赖,然后创建数据库,创建git用户,安装Gogs软件,设置启动,访问web界面进行配置 一.Gogs依赖环境 安装Gogs之前需要配置相应的依赖环境,官网介绍的依赖环境如下: 数 ...

  8. 在Centos7下搭建Git服务器

    ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clone 远程仓库 ⑤ 客户端创建 SSH 公钥和私 ...

  9. CentOS7搭建git服务器

    在CentOS7上搭建git服务器, 1.在Linux上安装git yum install -y git 验证是否安装成功,出现版本号即成功 git --version 2.创建版本库和用户 创建用户 ...

随机推荐

  1. 模板引擎之-jade

    ##### 首先我们安装jade模板引擎并编译`npm install jade --global`在项目文件夹下创建一个`index.jade`文件,并且写入```doctypehtml head ...

  2. Spring Boot 解决方案 - 会话

    连接无状态 使用 HTTP 的连接是无状态的,因此为了应对需要状态的服务例如用户登录,诞生了适合保存状态的设计-会话(session),本文就来探讨一下会话. 会话的使用 Spring Mvc 中使用 ...

  3. Java并发编程笔记之AbstractQueuedSynchronizer源码分析

    为什么要说AbstractQueuedSynchronizer呢? 因为AbstractQueuedSynchronizer是JUC并发包中锁的底层支持,AbstractQueuedSynchroni ...

  4. C语言第七讲,函数入门.

    C语言第七讲,函数入门. 一丶了解面向过程和面向对象的区别. 为什么要先讲面向过程和面向对象的区别? 面向过程,就是什么都要自己做.  比如你要吃饭. 那么你得自己做饭. 面向对象, 面向对象就是我要 ...

  5. web模拟终端博客系统

    本文由QQ音乐前端团队发表 前段时间做了一个非常有意思的模拟终端的展示页:http://ursb.me/terminal/(没有做移动端适配,请在PC端访问),这个页面非常有意思,它可以作为个人博客系 ...

  6. win7下安装mongodb

    1.下载mongodb,解压2.新建路径,如D:\mongodb,将解压出来的bin目录复制到该目录下3.在D:\mongodb目录下在新建data目录,在data目录下新建两个目录:db和log.4 ...

  7. ServerSocket和Socket

    前言 用ServerSocket和Socket做了个Server.Client通信的demo,以及学习下在这个demo过程中用到java.net.java.io包下几个常用的类. Server imp ...

  8. 动态规划法(八)最大子数组问题(maximum subarray problem)

    问题简介   本文将介绍计算机算法中的经典问题--最大子数组问题(maximum subarray problem).所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续子数组.比如 ...

  9. MVC 【ASPX视图引擎】

    新建项目----ASP.NET MVC 4 Web 应用程序------选择模板(空).视图引擎(ASPX) 1.认识控制器Controller using System; using System. ...

  10. jquery中innerwidth,outerwidth,outerwidth和width的区别

    在jQuery中,width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度, outerWidth()方法用于获得包括内边界(padding)和 ...