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