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. [转]权限系统与RBAC模型概述[绝对经典]

    转自:https://blog.csdn.net/yangwenxue_admin/article/details/73936803 0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的 ...

  2. Android中内容提供者ContentProvider的详解

    1.什么是ContentProvider 首先,ContentProvider(内容提供者)是android中的四大组件之一,但是在一般的开发中,可能使用的比较少. ContentProvider为不 ...

  3. js判断客户端是pc还是手机及获取浏览器版本

    //判断是pc还是移动端 function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bI ...

  4. Linux 常用命令 | mkdir/rmdir/touch 的使用

    一.创建空目录 命令:mkdir 原意:make directories 所在路径: /bin/mkdir 1.创建空目录 ​ 2.递归创建空目录 选项:-p 如果直接使用mkdir 创建空目录: W ...

  5. 读vue-0.6-filters.js源码

    'abc' => 'Abc' function capitalize (value) { if (!value && value !== 0) return '' value = ...

  6. 自己动手实现java数据结构(一) 向量

    1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址.为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应.在使用数组时需要事先 ...

  7. 一篇迟到的gulp文章,代码合并压缩,less编译

    前言 这篇文章本应该在去年17年写的,但因为种种原因没有写,其实主要是因为懒(捂脸).gulp出来的时间已经很早了,16年的时候还很流行,到17年就被webpack 碾压下去了,不过由于本人接触gul ...

  8. 设计模式教程(Design Patterns Tutorial)笔记之三 行为型模式(Behavioral Patterns)

    目录 · Strategy · When to use the Strategy Design Pattern? · Sample Code · Observer · When to use the  ...

  9. JavaWeb学习 (七)————HttpServletResponse对象(一)

    一.HttpServletResponse对象介绍

  10. Jenkins入门之界面概览

    安装完Jenkins后,打开浏览器,在浏览器地址栏内输入http://localhost:8080/ 便可以打开jenkins 基于web的管理界面(如果你在安装过程中修改了Jenkins默认端口,则 ...