使用Docker部署Gogs服务器

使用Docker部署Gogs服务器

背景

前一段使用docker部署了博客站,现在计划将gogs服务器也是用docker部署,这篇文章用来做一个记录和总结。

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。同时Docker容器之间都是互相隔离的,互不干扰。

介于Docker的特性,在一台服务器上如果要部署多种应用的话也是非常方便的,不用担心配置文件的冲突,也不用担心一个服务出错之后导致的其他服务不能够使用。

Gogs

Gogs 的是一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

对于个人或者小型团队来说使用gogs作为私有代码仓库要比gitlab简单易用,所以一直是我搭建云端git仓库的不二之选。

规划

容器之间如何连接?

虽然容器之间是互相隔离的,但是对于一些需要互相协作的容器也是可以互相通信的,对于docker的网络规划还是使用独立网络体验比较好,web服务专用一套网络‘network-webserver’,并且我们使用的MySQL数据库也在这个网络里。

Gogs使用的端口有ssh的22端口和网页访问的3000端口,介于容器与主机之间的关系是映射访问,我后期还会将Gogs的ssh端口修改为3022,所以在创建容器的时候直接映射3022端口。

整体拓扑图如下:

服务器容器网络拓扑图

我还想要什么功能?

在本地运行了一个本地端的Gogs后,查看了下设置里面的功能,觉得邮件通知的功能非常不错,刚好我也有一个闲置的邮箱。

文件放哪里?

对于使用Docker来说,存储最好是留在主机上,一旦容器有什么问题了也能快速的被恢复,也能够快速的将其备份到其他地方。检查Gogs的镜像信息后,发现需要创建两个目录,一个供数据使用,一个供Gogs的备份使用。

开始配置

启动容器

在主机上创建需要做数据卷的目录:"gogs","gogs-backup"。

pull镜像:docker pull gogs/gogs:0.12

启动容器:

docker run run -d --name gogs -p 3022:3022 -p 3000:3000 -v gogs/:/data -v gogs-backup/:/backup --network network-webserver gogs/gogs:0.12

配置网页

在浏览器输入”域名:3000“打开配置页面。

错误处理

其实搭建是非常简单的,但是在非常简单的步骤里总是会有一些意想不到的问题出现,所以这次搭建主要记录搭建中遇到的问题。

镜像选择什么版本

在Docker Hub中,Gogs的lastest标签指向了一个开发版,为了稳定我们可以选择0.12的标签,这个标签指向了目前的最新版0.12.3

容器时间不同步

在安装完毕Gogs后发现存在容器时间使用的是UTC时间,但是国内环境一般使用的是CST时间,这个时间差导致了很多的问题,所以要把容器内的时间修改掉。

docker cp /usr/share/zoneinfo/Asia/Shanghai gogs:/etc/localtime

总结

使用容器来搭建网络服务确实是个好方法,不用担心各种软件的冲突问题。现在服务都搭建完毕,剩下的就是去恢复数据了。

版权声明:
作者:EzioTAuditore
链接:http://blog.acdts.top/eziotauditore/docker-install-gogs/
来源:ETA's Blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录