使用Docker + Gogs搭建git私服

Gogs是一款极易搭建的自助Git服务。
接下来我们会使用Docker来搭建Gogs,并使用PostgreSql作为数据库。
具体Docker的安装我们这里就不详述了,没装的自己参照Docker官网安装即可。

搭建Gogs

1、先创建一个保存数据的目录

mkdir -p /opt/gogs

2、拉取Gogs镜像

docker pull gogs/gogs

3、启动镜像

docker run -d --name=gogs -p 222:22 -p 8888:3000 -v /opt/gogs:/data --privileged gogs/gogs

222和8888可以修改成自己喜欢的端口,也可以使用nginx反代,具体都看自己实际需求
/opt/gogs就是接下来我们保存数据的地址

到此为止,我们就可以使用http://ip:8888访问我们的gogs了,打开后,会出现配置界面

搭建PostgreSql

docker run -d --name postgres -e TZ="Asia/Shanghai" -e POSTGRES_PASSWORD="这里是密码" \
    -v /var/lib/postgresql/data:/var/lib/postgresql/data:rw \
    -v /etc/localtime:/etc/localtime:ro \
    --restart=always \
    --privileged \
    postgres

privileged是必不可少的,缺失的话会导致容器启动失败
POSTGRES_PASSWORD指定的是postgres用户的登录密码

配置PostgreSql

1、登录Postgres

docker exec -it postgres psql -U postgres

-U postgres是指定登录用户,Postgres的默认用户名就是postgres
2、创建gogs库

CREATE DATABASE gogs OWNER postgres;

3、退出Postgres

\q

获取PostgreSql的ip

执行下面的命令后按图获取ip即可

docker inspect postgres
获取Postgres IP

配置Gogs

打开http://ip:8888进入配置页面

image.png

修改如下配置:
数据库主机为:Postgres的ip:5432
数据库用户:postgres
数据库密码:搭建Postgres时设置的密码
数据库名称:gogs
域名:设置为你的域名或者服务器ip,视具体情况确定
SSH端口号:222(与启动gogs映射的22端口匹配的端口)
HTTP端口号:3000(这个是服务提供端口,默认3000即可)
应用URL:http://域名:8888(域名为你的域名或服务器ip,8888为启动gogs是映射3000端口的端口号)

其余配置视情况调整即可
修改后点击完成即可

头像优化

gogs默认使用的是gravatar.com的头像,但是该网站在国内的访问并不顺利,我们需要稍微调整下

vim /opt/gogs/gogs/conf/app.ini

/opt/gogs/是启动gogs配置的文件目录
[picture]下修改或新增GRAVATAR_SOURCE=https://sdn.geekzu.org/avatar/
保存后执行如下命令重启gogs

docker restart gogs

至此,你就可以愉快的使用自己的git了

扩展

CI/CD:gogs可以搭配Drone实现持续集成和持续交付
可以通过nginx反代gogs的http和ssh,达到与服务器上其他服务共用端口
为了防止数据丢失,可以考虑使用syncthing同步/opt/gogs目录到其他服务器备份

你可能感兴趣的:(使用Docker + Gogs搭建git私服)