supervisor配置gogs记录

问题一:不能使用 gosu 调用 git 用户来启动
发现不能使用 gosu 调用 git 用户来启动,gosu git /home/git/gogs/gogs web 会报如下错误:

gogs 运行系统用户非当前用户:git >
不推荐的解决方法是: 切换到git账户下执行:su - git $ ./gogs web

通过测试,可以采用如下的方式来使用 gosu 调用 git 用户(参考自gogs官方github中的dockerfile):

export USER=git
exec gosu $USER /app/gogs/gogs web
问题二:Fail to start SSH server: listen tcp 0.0.0.0:22: bind: permission denied
启用内置SSH服务器会报该错误,暂未找到解决方法。

通过测试,将默认的 22 端口改成其他端口即可。

但是 gogs官方的docker配置中建议不要在Docker容器中使用内置的SSH服务器。

问题三:PANIC: session(start): mkdir data: permission denied
详细错误信息如下:

[Macaron] 2017-03-21 06:05:40: Started GET / for 192.168.137.1
[Macaron] PANIC: session(start): mkdir data: permission denied
/usr/local/go/src/runtime/panic.go:489 (0x4340bf)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/github.com/go-macaron/session/session.go:156 (0x8f478e)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/gopkg.in/macaron.v1/context.go:79 (0x89ba01)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/github.com/go-macaron/inject/inject.go:157 (0x87dc92)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/github.com/go-macaron/inject/inject.go:135 (0x87da8b)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/gopkg.in/macaron.v1/context.go:121 (0x89bc62)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/gopkg.in/macaron.v1/context.go:112 (0x89bb86)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/gopkg.in/macaron.v1/recovery.go:161 (0x8af50b)
/home/vagrant/gopath/src/github.com/gogits/gogs/vendor/gopkg.in/macaron.v1/logger.go:40 (0x89f118)

该问题导致的原因是,当 git 用户运行 ./gogs web 时,会在 gogs 项目的主目录下 ( 这里是 /home/git/gogs)创建一个 data 目录用于存放session缓存等临时文件。如果当前工作的主目录不是在 /home/git/gogs 目录,则git账户就没有权限来创建目录,从而导致权限错误。
解决方法是在Dockerfile中指定工作目录 WORKDIR /home/git/gogs 即可。
在supervisor解决方法在配置文件中指定directory=/home/git/gogs

后经查证,在 Gogs 项目目录下的 custom data 和 log 三个目录是用来存放项目运行期间产生的日志、配置文件、数据等信息的。当Gogs项目需要升级时,直接拷贝这三个目录到新项目目录下即可。
这里的 data 目录需要提前创建好。
supervisor案例:

[program:gogs]
command=/var/go/src/github.com/gogs/gogs/gogs web
user=git
autostart=true
autorestart=true
directory=/var/go/src/github.com/gogs/gogs
environment = HOME="/home/git", USER="git"
stderr_logfile=/var/log/gogs_err.log
stdout_logfile=/var/log/gogs_out.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值