【发布时间】:2017-02-13 03:21:59
【问题描述】:
我在 docker 容器内启动 django 项目时遇到问题。我的 Dockerfile 如下所示:
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-admin。 PATH 设置不正确还是我在这里做错了什么? Dockerfile 位于目录web 中。
编辑:根据评论中的建议,我尝试使用完整路径运行django-admin:
root@935ca5543589:/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"
【问题讨论】:
-
你为什么不尝试使用
django-admin的完整路径? -
感谢您的建议。仍然没有成功。但是同样的行为,当我登录到容器时,它可以工作......
-
你是要执行
django-admin还是django-admin.py? -
是的。一样。现在两种方式都有效。请看我的回答。
标签: python django docker docker-compose