2017-02-13 57 views
2

我在启动docker容器内的django项目时遇到问题。我Dockerfile看起来如下:在docker-compose中运行Django

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

requirements.txt由单线Django成功地安装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-adminPATH设置不正确,还是我在这里做了其他错误? Dockerfile位于目录web

编辑:在评论的建议后,我试着运行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,它帮助了我。 –