我正在使用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 /文件夹作为共享文件夹。
答案 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