Docker-контейнер не запускает веб-сервер Gunicorn с непривилегированным пользователем - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь не использовать root внутри моего контейнера Docker, но Gunicorn не запускается.

FROM python:2.7

RUN apt update && \
 apt install -y  python-pip gcc python-dev libpq-dev && \
 pip install --upgrade pip && \
 pip install gunicorn && \
 pip install eventlet && \
 pip install psycopg2

RUN addgroup [username_group] && \
useradd -rm -d /home/[home] -s /bin/bash -g [username_group] -G sudo -u 1000 [username] # uid taken from host system

# USER [username] # if this line is un-commented it doesn't work.

COPY ./web2py /home/[home]/web2py

WORKDIR /home/[home]/web2py

EXPOSE 80 443

CMD gunicorn -b 0.0.0.0:80 -w 3 wsgihandler

Это вывод

[container]  | [2019-01-28 20:21:58 +0000] [6] [INFO] Starting gunicorn 19.9.0
[container]  | [2019-01-28 20:21:58 +0000] [6] [ERROR] Retrying in 1 second.
[container]  | [2019-01-28 20:21:59 +0000] [6] [ERROR] Retrying in 1 second.
[container]  | [2019-01-28 20:22:00 +0000] [6] [ERROR] Retrying in 1 second.
[container]  | [2019-01-28 20:22:01 +0000] [6] [ERROR] Retrying in 1 second.
[container]  | [2019-01-28 20:22:02 +0000] [6] [ERROR] Retrying in 1 second.
[container]  | [2019-01-28 20:22:03 +0000] [6] [ERROR] Can't connect to ('0.0.0.0', 80)

Использование того же UID, что и для хоста, решило проблемы с правами, которые у меня были с томами.Но так как я не могу использовать sudo в Dockerfile, я не уверен, как запустить сервер, не покидая контейнер с помощью root.

...