dockerfile ssh зомби процесс для ssh автозапуск - PullRequest
0 голосов
/ 07 июля 2019

Привет У меня возникли огромные проблемы с автозагрузкой sshd с контейнером.

Мой dockerfile: Dockerfile

Моя точка входа: точка входа

Когда я вхожу в контейнер bash и набираю:

service ssh status

[FAIL] sshd is not running ... failed!

также я получаю процесс zombie ssh: - |

ps -ef |grep ssh

node        15     1  0 14:49 ?        00:00:00 [sshd] defunct

node       183   142  0 14:59 pts/0    00:00:00 grep ssh

Я сделал несколько ошибок в файле Docker?

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Это потому, что вы используете USER node в конце Dockerfile для запуска sshd, который, я полагаю, вы хотите использовать node user для запуска npm.

Но предложенный способ заключается в использованииroot чтобы запустить sshd и использовать node для запуска npm, вы можете увидеть известный проект redis, который использует то же решение здесь

Затем вам нужно было исправить следующее:

  1. Удалить USER node в конце Dockerfile до CMD.
  2. Удалить RUN chmod 0444 /etc/ssh/* в вашем Dockerfile

    В противном случае он будетдалее сообщается, что sshd не работает:

    Разрешения 0444 для '/ etc / ssh / ssh_host_ecdsa_key' слишком открыты.

  3. Удалить RUN echo 'PermitRootLogin=without-password' >> /etc/ssh/sshd_config, используйте следующую для замены:

    RUN echo 'PermitRootLogin=yes' >> /etc/ssh/sshd_config
    
  4. Добавьте RUN apt-get install -y gosu в Dockerfile для установки gosu, который позже будет использоваться в entrypoint.sh

  5. В entrypoint.sh измените exec "$@" на следующее:

    exec gosu node "$@"
    

    Это обеспечит npm start работу с пользовательским узлом.

Затем выможно увидеть, когда запустить контейнер, сshd работает, вы можете использовать service ssh stop && service ssh start для перезапуска службы, если вам нужно, но, поскольку контейнер хорошо запускает sshd, я думаю, вам не нужно использовать это снова.

0 голосов
/ 07 июля 2019

Добавьте это в ваш скрипт точки входа.

service ssh restart && bash

Подробнее здесь .

Надеюсь, это поможет.

...