Docker撰写生产

时间:2015-10-15 01:22:46

标签: node.js docker docker-compose docker-machine

尝试使用docker-compose构建和构建一个简单的Node.js应用程序。虽然我遇到了与Django应用程序相同的问题,但我认为我只是缺少某种重要的步骤。这是我的Dockerfile:

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

当我运行docker compose up指向数字海洋机器时,它会抛出一个节点错误,表明它无法在/ var / app中找到代码。是否有其他机制我应该用来将我的代码放到除docker之外的机器上?

2 个答案:

答案 0 :(得分:5)

CMD mkdir -p /var/app行是错误的。它应该只是Dockerfile中的一个CMD,通常在最后。

只会执行一系列继承的docker镜像中的最后一个CMD指令。

您应该使用RUN代替

来自Dockerfile reference

  

Dockerfile中只能有一条CMD指令。如果列出多个CMD,则只有最后一个CMD才会生效。

     

CMD的主要目的是为执行容器提供默认值。

答案 1 :(得分:1)

尝试取出mkdir步骤。您还需要设置工作目录。