簡體   English   中英

主機卷未安裝在“Docker-compose up”上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM