10

我正在关注 docker-compose 教程,试图弄清楚如何部署 django 应用程序:http: //docs.docker.com/compose/django/

一切都很顺利(应用程序甚至可以运行!)但是 django 项目文件夹composeexample不是在我的本地项目目录中创建的。

我只剩下一个工作“它有效!” 运行后的页面:

$ docker-compose run web django-admin.py startproject composeexample .

但是我无法继续编辑composeexample/settings.py,正如教程所建议的那样:该文件夹在我的机器上不存在(它确实存在于容器中,但在那里对我没有好处!)

教程错了吗?我没有正确地遵循它吗?

谢谢!

更新:

这是问题所在,我正在使用 docker-machine 通过远程 docker 实例运行整个过程。使用远程 docker 机器时,本地文件夹共享的规则是否不同?

4

5 回答 5

1

您需要设置一个 dockerfile,以便在您进行 docker build 时,它将您的本地代码复制到容器中。首先,您需要将文件从容器复制到本地。看这里。或者只是用你自己的 django 应用程序覆盖目录

将文件从主机复制到 Docker 容器

例子:

FROM python:2.7
RUN mkdir /code
WORKDIR /code
ADD . /code/
于 2015-07-22T14:20:12.043 回答
0

我刚刚在使用 WSL 的 docker 上遇到了这个问题并对其进行了跟踪 - 这是卷安装的问题。基本上要解决这个问题,您需要在 WSL 中创建您的项目目录,而不是在“本机”WSL 目录中安装的 c 卷上。在我的情况下,这意味着在这里创建我的项目目录:/c/Users/seth/proj_dir

您可以在这个出色的 WSL/Docker 教程中阅读有关安装问题的更多信息(搜索“创建和修改新的 WSL 配置文件”,然后再次搜索“docker-compose up”:https ://nickjanetakis.com/blog/setting -up-docker-for-windows-and-wsl-to-work-flawless

于 2020-10-16T21:56:10.310 回答
0

添加 。docker 文件中的 /code/ 实际上将在 docker 映像中挂载您的本地工作目录。因此,您可以更改工作目录中的代码,并且将在 docker 容器中更新代码,因为工作目录安装在同一目录中。

使用教程中所示的 dockerfile 生成图像并使用相同的图像创建容器。

于 2015-07-22T14:56:45.650 回答
0

我遇到了同样的问题,挂载/代码没有出现。我在 mac ( mac os x yosemite 10.10.5 ) 上使用 docker ( Docker version 1.8.1, build d12ea79 )

跟随 Docker 安装:https ://docs.docker.com/installation/mac/

跟随 Django 部分:https ://docs.docker.com/compose/django/

f$ docker-compose run web django-admin.py startproject composeexample .
    ...........
    ... Removing details for brevity ...
    ...........
Removing intermediate container 515d53d20d29
Step 6 : ADD . /code/
 ---> ea2b28ba6ebc
Removing intermediate container 6d6f0f9e2fe0
Successfully built ea2b28ba6ebc

f$ ls
Dockerfile   docker-compose.yml   requirements.txt
于 2015-08-29T07:05:34.217 回答
0

有同样的问题,那是因为我在 Dockerfile 中更改了文件夹名称“/code”,但忘记在 docker-compose.yum 文件中更改文件夹名称。所以请确保2个文件中的文件夹名称相同。

实际上容器(和所有文件)已经在/var/lib/docker/overlay2/.../diff/code/中创建,这就是为什么日志提到“成功构建...”,但没有复制返回触发 cmd 的文件夹。希望这可以帮助。

于 2018-08-03T14:15:50.583 回答