阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一、前言
Git是目前优秀和流行的源代码管理工具。而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费。而公司出于商业化等目的需要搭建自己的源代码托管服务器。通过网上了解Gogs是一款不错git管理系统,而且是国内开源项目,今天我们就使用Gogs基于阿里云Linux CentOS 7 Docker部署搭建自己的git服务器。
Gogs介绍(官网):https://gogs.io/
参考官方部署:https://github.com/gogs/gogs/tree/master/docker
二、步骤
1、 购买一个阿里云服务器,系统选择Linux CentOS 7
2、 docker安装
yum install docker
docker -v
安装完毕后使用 docker -v 查看下版本号
3、 启动docker
systemctl start docker
4、 安装gogs
docker pull gogs/gogs
使用docker pull gogs/gogs 把镜像下载下来
5、 创建存储代码的仓库和配置文件所在的位置
mkdir -p /var/gogs
6、 使用docker 命令启动gogs
docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
其中10022映射的是docker中的22端口 10080映射的是http的3000端口,这个在我们启动的时候会使用到该配置,首次执行完成退出后需要重启
7、 启动gogs
docker start gogs
docker ps
docker ps查看启动状态
8、 访问gogs,访问链接是ip+端口进行配置(注:阿里云需要在安全组规则配置入站规则,即服务器端口10080, ssh端口10022)
注:HTTP端口号是指Gogs在Docker容器中侦听的端口,这里任然设置为3000,其它注意事项如下:
大多数设置都很明显并且易于理解,但是通过在Docker内部运行Gogs,有些设置可能会令人困惑:
- 存储库根路径:将其保留为默认值,/home/git/gogs-repositories因为start.sh已经为您建立了符号链接。
- 运行用户:将其保留为默认值,git因为finalize.sh已经使用名称设置了用户git。
- 域:填写Docker容器IP(例如192.168.99.100)。但是,如果要从其他物理机访问Gogs实例,请填写Docker主机的主机名或IP地址。
- SSH端口:使用Docker容器中公开的端口。例如,您的SSH服务器22在Docker内部监听,但是您通过公开了它10022:22,然后将其10022用于此值。不建议在Docker Container中使用内置SSH服务器
- HTTP端口:使用您希望Gogs在Docker容器中侦听的端口。例如,您的Gogs 3000在Docker内部进行侦听,并通过公开了它10080:3000,但您仍使用3000该值。
- 应用程序URL:使用域和公开的HTTP端口值(例如http://192.168.99.100:10080/)的组合。
更多详细见官方文档说明:https://github.com/gogs/gogs/tree/master/docker
9、配置后运行
访问成功
10、 创建仓库测试
服务器搭建成功,创建了一个私有 和 公开的仓库
11、Centos7.2重启后用docker start gogs异常
如遇到类似问题请查看:https://discuss.gogs.io/t/centos7-2-docker-start-gogs/483
三、参考资源
阿里云图文教程(本次搭建参考此教程):
https://www.aliyun.com/jiaocheng/120285.html?spm=5176.100033.0.0.jZ1hRY
阿里云教程使用MySQL:
https://www.aliyun.com/jiaocheng/125112.html?spm=5176.100033.0.0.jZ1hRY
git使用教程:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Gogs使用文档: