[英]Running Django in docker-compose
我在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
后, Dockerfile
docker-compose
没有自动重建图像,这是我假设的。 即使使用docker build
进行重建也无法解决这个问题。 只有在删除整个图像后,才会强制进行重建并给出正确的结果。
我跑了什么:
docker-compose run app djando-admin.py startproject app
输出:
sh:djando-admin.py:找不到
解:
sudo docker-compose run app django-admin startproject app .
尝试使用sudo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.