Я могу запустить контейнер от имени пользователя root и затем отредактировать файл sudoers, чтобы предоставить привилегии adam sudo.Я нахожусь в оболочке рыбы, поскольку dockerfile указывает ниже
root@9d2548623b8f /app# visudo
и добавляю
adam ALL=(ALL) ALL
Теперь Адам может запускать scict из gunicorn, который он не мог запустить ранее как непривилегированный пользователь.
Проблема в том, что рыбный терминал полностью изменился ... На самом деле, когда я делаю
su -adam
Вместо
adam@9d2548623b8f /app#
В ответ на приглашение я получаю
/app #
Нет цветовой кодировки идентификатора контейнера, нет автозаполнения ... Но я могу запустить скрипт, который является главным.Но на самом деле я даже не знаю, нахожусь ли я в рыбе или рыбе ...
Dockerfile
FROM python:3.6.6-alpine3.7
WORKDIR /app
COPY . /app
RUN addgroup -g 1000 -S adam
RUN adduser -u 1000 -S adam -G adam
RUN apk --no-cache add shadow \
build-base \
# dev dependencies
bash \
sudo \
fish \
vim\
# Pillow dependencies
jpeg-dev \
zlib-dev \
freetype-dev \
lcms2-dev \
openjpeg-dev \
tiff-dev \
tk-dev \
tcl-dev \
harfbuzz-dev \
fribidi-dev\
# psycopg2 dependencies
postgresql-dev
RUN usermod -s usr/bin/fish adam
RUN pip install pipenv
RUN pipenv install --deploy --system
CMD ["fish"]