2015-11-11 73 views
1

我的Mac上安裝了Docker Toolbox,但在構建過程中遇到了將文件添加到容器的問題。我在Dockerfile中使用ADD命令。我似乎無法添加任何本地文件。我知道Docker Toolbox在底層使用了VirtualBox,但我不確定如何將這些文件放入虛擬機來構建容器。有沒有一種方法可以讓我保留一個乾淨的操作系統不可知的Dockerfile而沒有任何絕對路徑?在Mac上爲Docker Toolbox添加命令

這是我的Dockerfile。它由Node.js容器構建,並帶有一些附加依賴項。

FROM node:4.2.2 

RUN apt-get update 
RUN apt-get install -y libvips-dev libgsf-1-dev libkrb5-dev 
RUN apt-get clean 

ADD app/ /app 
RUN cd /app && npm install --production 
RUN npm install forever -g 
+0

需要更多信息,你可以粘貼你的'''Dockerfile'''到你的問題嗎? – Softinio

+0

已添加。 –

回答

0

由於碼頭工人將使用VirtualBox的虛擬機在Mac上(與boot2docker或泊塢窗機),它會使用VirtualBox的客戶添置,這是有使用VirtualBox共享文件夾的明確目的。

確保處於這樣的共享路徑,通常在/Users/...

如果app//Users/path/to/app,那麼ADD應該工作。

您可以裝載other paths with boot2docker,但它可以是problematic with docker machine(請參閱issue 13)。

當然,要使ADD app ...正常工作,您需要位於app/的父文件夾中。
docker ADD

<src>路徑必須構建的上下文內;你不能ADD../something /something

0

原來,這是行不通的,但只適用於我目前的目錄。我的Dockerfile和我想添加的文件不在同一個目錄中。將shell移到我想要的文件,然後手動指定Dockerfile起作用。

docker build -f my/other/Dockerfile .