Образ должен соответствовать следующим требованиям:
Приложение в Playground запускается с UID 1000 и GID 1000. Это числовые идентификаторы Linux-пользователя и его основной группы. Требование действует и при отключенном SSH. Указание USER root в Dockerfile не меняет этот параметр.
Пользователь с UID 1000 должен иметь возможность:
читать файлы приложения;
запускать приложение;
записывать данные в необходимые каталоги.
При сборке образа установите зависимости и настройте права. При запуске Playground прав root нет.
Веб-приложение должно слушать 0.0.0.0 на порте, указанном в настройках Playground. Если приложение слушает только 127.0.0.1, оно будет недоступно извне.
Допустимы порты от 1025 до 65535, кроме 2222 — этот порт зарезервирован для SSH. Указание порта в настройках Playground или через EXPOSE в Dockerfile не влияет на настройки приложения. Например, если в Playground выбран порт 8080, приложение должно запускаться на 8080.
Для собственной команды, init-скрипта и встроенного SSH в образе должен присутствовать /bin/sh. Это требование действует и при отключенном SSH.
Требования к пользователю:
В образе должен быть пользователь с UID 1000 и GID 1000.
У пользователя должен быть домашний каталог с правами на чтение и запись.
У пользователя должна быть рабочая оболочка, например, /bin/sh, а не nologin или /bin/false.
Особенности подключения:
Встроенный SSH работает без дополнительного SSH-сервера.
Вход по паролю и под root недоступны.
Для подключения используйте SSH-ключ и команду из диалогового окна.
Для SSH-подключения используется Linux-пользователь, существующий в образе. Он должен совпадать со значением в поле Имя пользователя SSH при создании приложения. Это может быть jovyan, appuser или другое имя.
Если в образе есть только appuser, явно укажите appuser. Если оставить поле незаполненным, будет выбран jovyan, и SSH-подключение не сработает. Не указывайте в этом поле email или логин своей учетной записи. Поле не создает пользователя и не меняет его UID/GID.
В таблице приведены возможные значения поля Имя пользователя SSH и результат их использования.
Значение | Результат |
|---|---|
jovyan | Для SSH будет использован пользователь jovyan из образа. |
appuser | Для SSH будет использован пользователь appuser из образа. |
Поле не передано | Будет использован jovyan. |
null | Встроенный SSH будет отключен. |
"" | Пустое имя недопустимо. |
1000 | Недопустимо: требуется имя, а не числовой UID. |