[英]Host Volumes Not getting mounted on 'Docker-compose up'
我正在使用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構建時,一切正常。 但是當我運行docker-compose時,我得到了
[8] System error: exec: "./command.sh": stat ./command.sh: no such file or directory
我在stackoverflow上發現了這個問題如何在docker機器中安裝本地卷,遵循建議的解決方法,但沒有成功。
我做錯了什么? 為什么這適用於osx和windows而不適用於Debian環境? 是否有適用於Debian環境的解決方法? 當我檢查VirtualBox GUI時,Osx和Debian都將/ Users /文件夾作為共享文件夾。
這應該不適用於OSX,而是單獨使用Debian。 原因如下:
將./command.sh
添加到卷/home/docker/django/django/
./command.sh
/home/docker/django/django/
,映像構建正常,文件位於正確的目錄中。 但是當您up
容器時,您將本地目錄“置於”您在映像中創建的目錄之上。 那么,那里再也沒有......
我建議將command.sh
添加到其他位置,例如/opt/django/
或其他內容,並將./opt/command.sh
命令更改為./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/
我相信這應該有效。 使用相對路徑的docker-compose版本存在一些問題。
django:
build: django
volumes:
- ${PWD}/django:/home/docker/django
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.