使用Docker安装Gogs源码仓库

2018-6-10 分类: 系统架构

不管技术还是生活,我现在都越来越喜欢简单、轻巧、专一、高效。因此我放弃了使用笨重、复杂的GitLab,而选择了这个轻量的源码管理工具。它的github地址是:github.com/gogs/gogs。目前是go语言类,stars排名第7的开源项目。这篇文章将介绍如何使用docker来搭建Gogs源码管理仓库。

下载镜像

首先是在hub.docker.com上搜索gogs,找到镜像地址:hub.docker.com/r/gogs/gogs/tags/。然后获取到本地,重新tag一下,方便后面使用。

这里我加了registry.docker-cn.com前缀,使用国内的docker镜像库,速度更快一些。

docker pull registry.docker-cn.com/gogs/gogs:0.11.53; \ docker tag registry.docker-cn.com/gogs/gogs:0.11.53 gogs:0.11; \ docker rmi registry.docker-cn.com/gogs/gogs:0.11.53;

运行容器

docker run -d --name=gogs -p 8031:3000 -p 8032:22 -v /docker/gogs:/data gogs:0.11;

配置gogs

上面映射了两个端口,其中8031是http端口号,8032是ssh端口号。假设安装的服务器IP是192.168.1.57,则用浏览器打开http://192.168.1.57:8031,自动跳转至配置页面,然后按下面这样配置。

使用域名也是类似的配置,将192.168.1.57修改成相应的域名即可。实际上,我是使用git.we-app.net这个域名进行配置的。

Gogs应用基本设置

这里注意不要修改上面的3000端口号。

如果配置错了想要重新安装,可以执行:docker stop gogs; docker rm gogs; rm -rf /docker/gogs;。实际上,我是重试了六七遍才达到我想要的全部效果 ...

验证安装

配置完成后,会自动跳转到登录页:http://192.168.1.57:8031/user/login。这个URL地址也就是上节配置的应用URL(非域名,域名的配置影响的是SSH)。

系统登录界面

注册登录成功后,可以创建一个helloworld仓库,可以看到如下界面:

仓库主界面

配置SSH登录

安装完成后,在客户端先安装git软件,然后打开git bash,尝试推送到仓库:

touch README.md git init git add README.md git commit -m "first commit" git remote add origin ssh://git@git.we-app.net:8032/zhangzy/helloworld.git git push -u origin master

在git push -u origin master这一步,会出现下面的提示,显然,我们还没有进行任何验证,所以没有权限推送到仓库。

下图中的关键提示:Permission denied(publickey, keyboard-ineractive).

推送时提示没有权限

此时,执行下面几个步骤:

1. 打开Git Bash,执行cat ~/.ssh/id_rsa.pub。查看本地的id_rsa.pub文件内容。

2. 如果没有文件则使用命令,创建密钥(将191811496@qq.com替换成你的gogs账号):

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

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

ssh-rsa A3AAB3NzaC1yc21AAAADAQABAAABAQCz34D4ax68jc/mMAp255LhHYhAtZqjM+y7bFsDG/Na3fnJEfl7QdlP1X8SGRLAs0xb+5CTID7cXfJ3wmxDbZkwuu3XFlWISfV+sf8myovqO8BE5QPa9tZ6RkHcTvyT9qutAZUJyuiv203E1i2RjacPla0wZArs5Xm2qeRtgccR8qwWYbFrYX0nXaGdQ/mwgt1JLJbHi5vQHQeREfXm/7j8rjj6BaE07L8/0IFu0jF7RV+2+Tpy1z+CQAgDuPEoX55InFwDyOJujClvqYuWEbcmTRXx16qSyuDi7W+XTy6+Ivu917knQ3HOvP1qqM0N3HdrzQtBW0S5wDGfb6/mh0Q/ 191811496@qq.com

4. 进入gogos,点击右上角用户头像 --> 用户设置 --> SSH密钥,然后粘贴进去,点击“增加密钥”。

配置SSH密钥

至此,SSH登录就配置完成了。重新在客户端运行git bash,执行git push -u origin master,正常的话将会成功推送代码到gogs源码仓库。

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