2016-07-27 167 views
1

我按照说明设置了正式的Django docker镜像,找到here。首先,我创建了我的项目一个支架,通过运行为什么在安装官方的Django docker镜像之后我不能`docker exec`?

$ 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 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是没有安装。但我很困惑;我以为这个码头图像应该与django一起发货。我知道自开始页面出现以来,django曾经使用过一次。

我认为码头图像的一点是,所以我不必在主系统上安装Django。 docker exec在这种情况下应该如何使用?


Vagrantfile

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

Dockerfile

FROM django:onbuild 
+0

请分享您的容器 – Martin

+0

文档说我的Dockerfile需要这条线在它的'Dockerfile': 从Django中:onbuild 。 这就是它的全部内容。 – kag

+0

@mgansler我已经添加了我的Vagrantfile如何将上面的django docker映像拉出来,如果相关的话。我的Dockerfile与单行程在我的django项目的根目录下,在我的manage.py旁边。 – kag

回答

0

你的工作目录可能不会/folder/to/mysite/这样的Django无法找到设置文件导入。

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

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