使用docker部署gogs及git-hook自动部署hexo



拉取gogs镜像

1
docker pull gogs/gogs

创建gogs映射目录

1
2
mkdir -p /var/lib/gogs/
mkdir /web # 需要部署hexo的目录

运行gogs

1
2
3
4
5
# 需要注意gogs git hooks对web目录的权限
docker run -d --restart always --name=gogs \
-p 10022:22 -p 10080:3000 \
-v /var/lib/gogs:/data -v /web:/web \
gogs/gogs

配置gogs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 访问 http://<ip>:10080
# 数据库按需选择
SQLite3
# 数据库文件路径
data/gogs.db # 默认
# 域名 填写自己域名
# SSH 端口号
10022 # 启动时22映射的端口,展示在ssh克隆地址里
# HTTP 端口号
3000 # 默认
# 应用 URL
http://<域名>:10080/ 或者 反向代理域名 # 展示在http克隆地址里

# 其余保持默认,设置管理账号(也可安装后创建)

创建项目,设置Git钩子

1
2
3
4
5
6
7
# 仓库设置 -- 管理Git钩子
# 修改 post-receive
#!/usr/bin/env bash
git_path=/data/git/gogs-repositories/用户名/仓库名.git
deploy_path=/web/data
rm -rf /web/data
git clone $git_path $deploy_path