git 克隆 (SSH) 在 docker 中被 supervisord 运行 收割

git clone (SSH) gets reaped by supervisord run in docker

我正在尝试创建用于托管远程 git 存储库的应用程序。我想要做的是允许用户通过 SSH 克隆存储库,我正在使用 supervisord 来服务我的应用程序和 sshd,但是当我尝试克隆存储库时,我得到:

$ git clone git@address:/repositories/some-repo
Cloning into 'some-repo'...
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

并且在 supervisord 日志中我可以看到:

[date] INFO reaped unknown pid [PID]

所以在我看来,只有 supervisord 正在杀死所有未知的 PID。 我确信我已经为我的存储库设置了正确的访问权限,并且我的密钥已添加到 authorized_keys 文件中。我当前的 supervisord 配置是:

[supervisord]
logfile = /tmp/supervisord.log
directory = /tmp
childlogdir = /tmp

[program:app-sshd]
command=/usr/sbin/sshd -D

[program:app-uwsgi]
command = /usr/local/bin/uwsgi --ini /my/path/uwsgi.ini
stopsignal=INT

[program:app-nginx]
command = /usr/sbin/nginx

有没有什么方法可以在 supervisor 中允许 git 连接,或者我是否需要用虚拟机替换我的 docker 容器才能继续这个项目?

问题是我的用户将 shell 设置为 /bin/false,然后他在登录后就注销了。将其更改为 /bin/bash 解决了问题。