尝试使用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之外的机器上?
答案 0 :(得分:5)
第CMD mkdir -p /var/app
行是错误的。它应该只是Dockerfile中的一个CMD
,通常在最后。
只会执行一系列继承的docker镜像中的最后一个CMD
指令。
您应该使用RUN
代替
Dockerfile中只能有一条CMD指令。如果列出多个CMD,则只有最后一个CMD才会生效。
CMD的主要目的是为执行容器提供默认值。
答案 1 :(得分:1)
尝试取出mkdir步骤。您还需要设置工作目录。