У меня есть докер-контейнер с некоторыми процессами (uwsgi и сельдерей) внутри. Я хочу создать пользователя сельдерея и пользователя uwsgi для этих процессов, а также группу работников, к которой они будут принадлежать, для назначения разрешений.Добавить пользователя в контейнер Docker
Я попытался добавить RUN adduser uwsgi
и RUN adduser celery
к моему файлу Docker, но это вызывает проблемы, так как эти команды запрашивают ввод (я отправил ответы из сборника ниже).
Каков наилучший способ добавить пользователей в контейнер Docker, чтобы установить разрешения для рабочих, работающих в контейнере?
Изображение My Docker построено на официальной базе Ubuntu14.04.
Вот выход из Dockerfile когда команды AddUser выполняются:
Adding user `uwsgi' ...
Adding new group `uwsgi' (1000) ...
Adding new user `uwsgi' (1000) with group `uwsgi' ...
Creating home directory `/home/uwsgi' ...
Copying files from `/etc/skel' ...
[91mEnter new UNIX password: Retype new UNIX password: [0m
[91mpasswd: Authentication token manipulation error
passwd: password unchanged
[0m
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 563.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 564.
[0m
Try again? [y/N]
Changing the user information for uwsgi
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []: Work Phone []: Home Phone []: Other []:
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.
[0m
Is the information correct? [Y/n]
---> 258f2f2f13df
Removing intermediate container 59948863162a
Step 5 : RUN adduser celery
---> Running in be06f1e20f64
Adding user `celery' ...
Adding new group `celery' (1001) ...
Adding new user `celery' (1001) with group `celery' ...
Creating home directory `/home/celery' ...
Copying files from `/etc/skel' ...
[91mEnter new UNIX password: Retype new UNIX password: [0m
[91mpasswd: Authentication token manipulation error
passwd: password unchanged
[0m
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 563.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 564.
[0m
Try again? [y/N]
Changing the user information for celery
Enter the new value, or press ENTER for the default
Full Name []: Room Number []: Work Phone []:
Home Phone []: Other []:
[91mUse of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
[0m
[91mUse of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.
[0m
Is the information correct? [Y/n]
Is «новый_пользователь» имя пользователя, которое вы сами выбираете? –
Да, точно. Замените его именем по вашему выбору. –
Я бы рекомендовал использовать параметры полного имени в файле Docker, как в скрипте, вместо коротких (больше для использования в интерактивном режиме IMO). 'useradd --create-home --shell/bin/bash' более понятный/читаемый для коллег. –