2015-10-15 106 views
1

嘗試使用docker-compose構建並生成一個簡單的Node.js應用程序。儘管我遇到了與Django應用程序相同的問題,所以我認爲我只是缺少某種至關重要的步驟。這裏是我的Dockerfile:Docker撰寫正在生產

FROM node:4.2.1 
CMD mkdir -p /var/app 
COPY . /var/app 
EXPOSE 3000 
CMD node /var/app/index.js 

當我運行搬運工撰寫了向它拋出一個節點錯誤提示無法找到在/ var /應用程序代碼中的數字海洋機器指出。有沒有其他的機制可以讓我的代碼進入Docker以外的機器?

+0

你的docker文件中應該只有一個'CMD' –

回答

3

該行CMD mkdir -p /var/app是錯誤的。 Dockerfile中應該只有一個CMD,通常在末尾。

只有最後的CMD指令在一系列繼承的泊塢窗圖像中被執行。

您應該使用RUN代替

Dockerfile reference

中只能有一個Dockerfile一個CMD指令。如果列出多個CMD,則只有最後一個CMD纔會生效。

CMD的主要目的是爲執行容器提供默認值。

1

嘗試取出mkdir步驟。您還需要設置工作目錄。