почему рабочий-оружейник не загружается при запуске в Docker? - PullRequest
0 голосов
/ 02 июля 2018

ОБНОВЛЕННАЯ КОРОТКАЯ ВЕРСИЯ: если у меня есть образ докера, который не запускается (но оставляет мало информации о том, почему), есть ли способ подключиться к контейнеру, на котором запущен образ, для его отладки?

(Большое спасибо тем, кто указал на проблему с несколькими записями CMD в Dockerfile. Я все еще пытаюсь обдумать это)

КРАТКАЯ ВЕРСИЯ: я не могу открыть свой веб-сервис с "Docker Run", потому что "Worker не удалось загрузиться". Как я могу узнать, что не работает?

ДЛИТЕЛЬНАЯ ВЕРСИЯ:

Я могу запустить свой проект Django с Gunicorn на переднем плане:

(trans3) chris@chi:~/website$ gunicorn --bind 0.0.0.0:8000 hero.wsgi
[2018-07-02 15:18:36 +0000] [21541] [INFO] Starting gunicorn 19.7.1
[2018-07-02 15:18:36 +0000] [21541] [INFO] Listening at: http://0.0.0.0:8000 (21541)
[2018-07-02 15:18:36 +0000] [21541] [INFO] Using worker: sync
[2018-07-02 15:18:36 +0000] [21546] [INFO] Booting worker with pid: 21546
^C
[2018-07-02 15:18:39 +0000] [21541] [INFO] Handling signal: int
[2018-07-02 15:18:39 +0000] [21541] [INFO] Shutting down: Master

У меня есть небольшой Dockerfile.web для моей службы:

(trans3) chris@chi:~/website$ cat Dockerfile.web
# start with our Django app image
FROM dockersite:latest

# collectstatic.
CMD python manage.py collectstatic --noinput

# run the server
CMD gunicorn --bind 0.0.0.0:$PORT hero.wsgi

Я строю свой образ

(trans3) chris@chi:~/website$ docker build -t dockersite/web -f Dockerfile.web .
Sending build context to Docker daemon  137.5MB
Step 1/3 : FROM dockersite:latest
 ---> 56b1488f8e27
Step 2/3 : CMD python manage.py collectstatic --noinput
 ---> Using cache
 ---> 59585027568d
Step 3/3 : CMD gunicorn --bind 0.0.0.0:$PORT hero.wsgi
 ---> Using cache
 ---> c17429800329
Successfully built c17429800329
Successfully tagged dockersite/web:latest

Я пытаюсь запустить свой образ:

(trans3) chris@chi:~/website$ docker run -e PORT=8000 -p 8000:8000 --env-file=.env dockersite/web:latest 
[2018-07-02 19:23:26 +0000] [8] [INFO] Starting gunicorn 19.7.1
[2018-07-02 19:23:26 +0000] [8] [INFO] Listening at: http://0.0.0.0:8000 (8)
[2018-07-02 19:23:26 +0000] [8] [INFO] Using worker: sync
[2018-07-02 19:23:26 +0000] [12] [INFO] Booting worker with pid: 12
MEMCACHEDCLOUD_SERVERS not found, using LocMem cache
[2018-07-02 19:23:27 +0000] [8] [INFO] Shutting down: Master
[2018-07-02 19:23:27 +0000] [8] [INFO] Reason: Worker failed to boot.

Как я могу получить больше информации от Gunicorn, чтобы сказать мне, почему он терпит неудачу? Есть ли в Python логгер, который я могу настроить? (Я попробовал --spew и получил много информации, но ничего из этого не помогло.)

...