我在 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"
最佳答案
其实答案很简单。第一次运行项目时,我的 Dockerfile
出现错误。更改 Dockerfile
后,docker-compose
没有像我假设的那样自动重建图像。即使使用 docker build
重建也没有解决这个问题。只有在删除整个图像后,才强制重建并给了我正确的结果。
关于python - 在 docker-compose 中运行 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196188/