主机卷未安装在“Docker-compose up”上

时间:2016-04-21 11:59:13

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

我正在使用docker-machine和docker-compose开发一个带有React前端的Django应用程序。这些卷不会在Debian环境中安装,但在OSX和Windows上运行正常,我几天来一直在努力解决这个问题,我创建了一个我的项目的简易版本,仍然复制了你可以在{{3 }}。 我的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构建时,一切正常。但是当我运行docker-compose时,我得到了

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

我在stackoverflow上发现了这个问题 https://github.com/firetix/docker_bug遵循提议的解决方法但没有成功。

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

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

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