Я попал в ту же ситуацию с официальным образом докера gitlab-ce после миграции с kvm.
root@gitlab:/opt/gitlab# /opt/gitlab/embedded/bin/sv start sshd
warning: sshd: unable to open supervise/ok: access denied
Я обнаружил, что этот sv генерирует ошибку:
root@gitlab:/opt/gitlab# /opt/gitlab/embedded/bin/sv start sshd
warning: sshd: unable to open supervise/ok: access denied
Поскольку канал / opt / gitlab / sv / sshd / supervise / ok недоступен для пользователя root:
root@gitlab:/opt/gitlab/sv/sshd/supervise# cat ok
cat: ok: Permission denied
И в качестве теста я обновил его с разрешениями 777, но все еще нетluck
root@gitlab:/opt/gitlab/# /opt/gitlab/embedded/bin/sv start sshd
fail: sshd: runsv not running
Обходной путь, который я использовал, находится в моем Dockerfile, который основан на gitlab-ce: latest:
RUN sed -i '/gitlab-ctl reconfigure/a service ssh start' /assets/wrapper
Это запустит ssh, и теперь я могу соединиться сgit user через ssh, чтобы нажать и вытащить:)
Не забывайте, что вам нужно правильно настроить env для портов, которые вы хотите использовать https://docs.gitlab.com/omnibus/docker/
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.m31.com:3080'
gitlab_rails['gitlab_shell_ssh_port'] = 3022
Таксейчас все работает, но имейте в виду, что это странный / уродливый обходной путь, и я уверен, что есть лучший способ сделать эту работу.