【问题标题】:local files missing from docker-machine containerdocker-machine 容器中缺少本地文件
【发布时间】:2015-10-12 13:16:01
【问题描述】:

所以我有一个简单的容器化 django 项目,还有另一个用于 sass css 编译的容器。

我将 docker-compose 与 docker-machine 一起使用,但是当我启动它时,Web 容器中没有我的任何本地文件(manage.py 等),因此它因 file not found: manage.py 错误而死.

让我解释一下:

docker-compose.yml

web:
  build: .
  volumes:
    - .:/app
  ports:
    - "8001:5000"
sass:
  image: ubuntudesign/sass
  command: sass --debug-info --watch /app/static/css -E "UTF-8"
  volumes:
    - .:/app

Dockerfile

FROM ubuntu:14.04

# Install apt dependencies
RUN apt-get update && apt-get install -y python-dev python-pip git bzr libpq-dev pkg-config

FROM ubuntu:14.04

# Install apt dependencies
RUN apt-get update && apt-get install -y python-dev python-pip git bzr libpq-dev pkg-config

# Pip requirements files
COPY requirements /requirements

# Install pip requirements
RUN pip install -r /requirements/dev.txt

COPY . /app
WORKDIR /app

CMD ["python", "manage.py", "runserver", "0.0.0.0:5000"]

以及本地目录下的标准django项目:

$ ls 
docker-compose.yml Dockerfile manage.py README.md static templates webapp

这是我能做到的孤立错误:

$ docker-compose run web python

can't open file 'manage.py': [Errno 2] No such file or directory

这是真的:

$ docker-compose run web ls

static

我认为这是使用远程docker-machines 的问题,我尝试关注simple django tutorial,但我认为本地文件共享的工作方式不同。

使用 docker-machine 有什么不同?

【问题讨论】:

  • 您介意对“最终结果”Dockerfile 和 docker-compose.yml 文件进行编辑吗?
  • 我不再有那个配置了,抱歉,但是很简单:只在一个单元上进行复制(我使用了 web 单元),然后所有其他单元执行 volume_from: web

标签: django postgresql docker docker-compose docker-machine


【解决方案1】:

Docker 卷将 host 中的文件挂载到容器中。

因此,在这种情况下,您已将 docker-machine 指向的任何主机的当前目录挂载到容器中。除非您正在进行一些时髦的 VM 交叉挂载(如 boot2docker 那样),否则这不会与您正在运行的机器上的目录匹配。

【讨论】:

  • 啊,有道理!所以从我的码头机器的角度来看,它是本地的。你知道最好的方法吗?我想将我的 django 应用程序推送到 docker 机器控制的容器。谢谢!
  • 是的 - 将代码放入容器中 :) 或者在远程主机上编辑文件。
  • 我已经用完整的 Dockerfile 更新了 Q,这不就是 COPY(也是 ADD)指令的作用吗?我都试过了!谢谢:-)
  • 是的,应该可以;现在只需删除卷语句(它将在代码顶部安装一个空目录)。
  • 是的,另请参阅 --volumes-from 和数据容器 docs.docker.com/userguide/dockervolumes
猜你喜欢
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
相关资源
最近更新 更多