繁体   English   中英

在docker-compose中运行Django

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM