2017-02-13 8 views
2

У меня возникли проблемы с запуском проекта django внутри контейнера докера. Мой Dockerfile выглядит следующим образом:Запуск Django в docker-compose

FROM python:2.7 
ADD . /code 
WORKDIR /code 
RUN pip install -r requirements.txt 
EXPOSE 8000 

requirements.txt состоит из одной строки Django которые установить Джанго успешно.

Мой docker-compose.yml имеет следующее содержание:

version: '2' 
services: 
    web: 
    build: ./web 
    command: python manage.py runserver 0.0.0.0:8000 
    ports: 
    - "8000:8000" 
    volumes: 
    - ./web:/code 

Чтобы создать проект, я зову:

docker-compose run web python django-admin.py startproject web . 

, который падает со следующим сообщением:

python: can't open file 'django-admin.py': [Errno 2] No such file or directory 

Также этот

docker-compose run web django-admin.py startproject web . 

аварии с

ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"django-admin.py\": executable file not found in $PATH" 

Мне кажется, что есть ошибка в $PATH при выполнении контейнера, как это. Когда я использую интерактивный режим -it, я могу вызвать django-admin из этой папки. Правильно ли установлен PATH, или я делаю что-то еще не так? Dockerfile находится в каталоге web.

Edit: После того, как предложение в комментарии, я попытался запустить django-admin с полным путем:

[email protected]:/code# which django-admin 
/usr/local/bin/django-admin 

до сих пор нет изменений:

docker-compose run web /usr/local/bin/django-admin startproject web . 
ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/usr/local/bin/django-admin\": stat /usr/local/bin/django-admin: no such file or directory" 
+0

Почему вы не пытаетесь использовать полный путь к 'django-admin'? –

+0

Спасибо за предложение. Все еще нет успеха. Но опять же такое же поведение, когда я вхожу в контейнер, он работает ... – Freddy

+0

Вы пытаетесь выполнить 'django-admin' или' django-admin.py'? – NZD

ответ

0

Ответ очень прост на самом деле. У меня была ошибка в моем Dockerfile, когда я сначала запустил проект. После изменения Dockerfile, docker-compose не перестроил изображение автоматически, которое я предполагал. Даже перестройка с docker build не решила этого. Только после удаления всего изображения, перестройка была принудительной и дал мне правильный результат.

+0

Почему downvote? Это явно решает мою проблему, и я описал, как это сделать. – Freddy

+0

idk, это помогло мне. –