2

尝试使用 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之外,我还应该使用其他机制将我的代码放到机器上吗?

4

2 回答 2

5

线路CMD mkdir -p /var/app错了。它应该CMD在 Dockerfile 中只有一个,通常在末尾。

只有CMD继承的 docker 镜像链中的最后一个指令会被执行。

你应该RUN改用

来自Dockerfile 参考

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

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

于 2015-10-15T01:48:24.507 回答
1

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

于 2015-10-15T01:38:45.090 回答