Команда не найдена в Dockerfile CMD - PullRequest
1 голос
/ 18 марта 2020

У меня есть Dockerfile, который использует

CMD ['/usr/local/bin/gunicorn', '-b 0.0.0.0:8000', 'myapp.wsgi']

Но когда я запускаю контейнер, используя docker run --rm myimage:latest, я получаю ошибку:

/ bin / sh: 1 : [/ usr / local / bin / gunicorn,: не найдено

Тем не менее, когда я запускаю docker run --rm -it myimage:latest /bin/bash до go в контейнере, я вижу, что gunicorn работает и работает which gunicorn возвращает правильный путь для gunicorn. Почему он не запускается?

Точно так же я планировал добавить

ENTRYPOINT ['/entrypoint.sh']

в свой Dockerfile, но когда я его запускаю, я получаю ошибку

/ bin / sh: 1: / bin / sh: [/entrypoint.sh]: не найдено

Файл entrypoint.sh содержит:

#! /bin/bash
echo 'Starting app...'
cd /app || exit;
python manage.py migrate;

Так почему же все время говорится, что команда не найдена, когда есть все команды?

1 Ответ

2 голосов
/ 18 марта 2020

Проблема здесь в цитатах . Используйте двойные " кавычки.

С Docker Документация :

Форма exe c анализируется как массив JSON, который означает, что вы должны использовать двойные кавычки («) вокруг слов, а не одинарных кавычек (').

Это применимо для других инструкций, таких как RUN, LABEL, ENV, ENTRYPOINT и VOLUME.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...