安装官方Django docker镜像后,为什么我不能“停靠exec”?

时间:2016-07-27 10:53:07

标签: django docker vagrant

我按照设置官方Django泊坞窗图片的说明找到了here。首先,我通过运行

为我的项目创建了一个脚手架
$ docker run -it --rm --user "$(id -u):$(id -g)" -v "$PWD":/usr/src/app -w /usr/src/app django django-admin.py startproject mysite2

然后,我按照创建Dockerfile的说明进行操作,在构建图像后,我用

运行了docker镜像。
docker run --name some-django-app -p 8000:8000 -d my-django-app

it worked!

就像建议的默认页面一样,我决定使用

创建我的第一个应用程序
docker exec <docker container ID> bash -c "python /folder/to/mysite2/manage.py startapp polls"

但后来我收到了错误消息

Traceback (most recent call last):
   File "/folder/to/mysite2/manage.py", line 8, in <module>
      from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

经过一些谷歌搜索,这表明django没有安装。但我很困惑;我以为这个docker图像应该与django一起发货。我知道自开始页面出现以来,django曾被使用过一次。

我认为docker图像的重点是所以我没有必要在主系统上安装django。如何在这种情况下使用docker exec

Vagrantfile

config.vm.provision "docker" do |d|
    d.pull_images "django"
end

Dockerfile

FROM django:onbuild

1 个答案:

答案 0 :(得分:0)

您的工作目录可能不是/folder/to/mysite/所以django无法找到要导入的设置文件。

在dockerfile中,设置WORKDIR=/folder/to/mysite/,然后将运行命令简化为:

docker exec -t <docker container ID> bash -c "python ./manage.py startapp polls"