【问题标题】:Host Volumes Not getting mounted on 'Docker-compose up'主机卷未安装在“Docker-compose up”上
【发布时间】:2016-04-21 11:59:13
【问题描述】:

我正在使用 docker-machine 和 docker-compose 来开发一个带有 React 前端的 Django 应用程序。这些卷没有安装在 Debian 环境中,但可以在 OSX 和 Windows 上正常工作,我已经为这个问题苦苦挣扎了好几天,我创建了一个轻量级版本的项目,它仍然复制了你可以在 https://github.com/firetix/docker_bug 中找到的问题. 我的 docker-compose.yml:

django:
    build: django
    volumes:
        - ./django/:/home/docker/django/

我的 Dockerfile 如下

FROM python:2.7
RUN mkdir -p /home/docker/django/
ADD . /home/docker/django/
WORKDIR /home/docker/django/
CMD ["./command.sh"]

当我运行 docker-compose build 时,一切正常。但是当我运行 docker-compose up 我得到 ​​p>

[8] System error: exec: "./command.sh": stat ./command.sh: no such file or directory

我在 stackoverflow 上发现了这个问题 How to mount local volumes in docker machine 遵循了建议的解决方法,但没有成功。

我做错了什么?为什么这在 osx 和 windows 上有效,但在 Debian 环境下无效?是否有任何适用于 Debian 环境的解决方法?当我检查 VirtualBox GUI 时,Osx 和 Debian 都将 /Users/ 文件夹作为共享文件夹。

【问题讨论】:

标签: docker docker-compose dockerfile boot2docker docker-machine


【解决方案1】:

这不应该在 OSX 上为你工作,而在 Debian 上却不适合你。原因如下:

当您将./command.sh 添加到卷/home/docker/django/django/ 时,图像构建良好,文件位于正确的目录中。但是,当您 up 容器时,您会将本地目录“安装在”您在映像中创建的目录的“顶部”。所以,那里不再有任何东西......

我建议将command.sh 添加到其他位置,例如/opt/django/ 或其他位置,并将您的docker 命令更改为./opt/command.sh

或者更简单,类似这样,这里是完整的代码:

# Dockerfile
FROM python:2.7
RUN mkdir -p /home/docker/django/
WORKDIR /home/docker/django/

# docker-compose.yml
django:
    build: django
    command: ./command.sh
    volumes:
        - ./django/:/home/docker/django/

【讨论】:

  • 不确定这是不是真的,我刚刚在 OSX el capitain Docker v 1.9.0、docker-compose 1.5.0 上对其进行了测试,它正在工作,因为在“顶部”上挂载应该覆盖本地文件command.sh,不挂载空卷。在 OSX 中它确实覆盖了该文件,但在 Debian 上我仍然得到错误文件 command.sh not found。我还尝试将 command.sh 移动到未安装的文件夹 /opt/ 仍然遇到同样的问题。@Brandon 感谢您的回答!
  • 据我所知,直接主机卷必须以绝对方式编写(可以使用${PWD} env 变量。
【解决方案2】:

我相信这应该可行。使用相对路径的 docker-compose 版本存在一些问题。

 django:
   build: django
   volumes:
     - ${PWD}/django:/home/docker/django

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 2015-08-18
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    相关资源
    最近更新 更多