2015-10-15 102 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步骤。您还需要设置工作目录。