【发布时间】:2016-07-16 00:24:23
【问题描述】:
我正在尝试实现一些非常基本的东西,但是现在已经为此工作了几个晚上,但仍然没有找到可靠的(或任何)解决方案。我在 SO 上找到了一些类似的主题,并按照那里的内容进行操作,但无济于事,因此我为我的具体案例创建了一个 GitHub 存储库。
我正在尝试做的事情:
- 能够使用
docker-compose up -d配置 NodeJS 应用程序(我计划将来添加更多容器,本示例中省略) - 确保代码通过
volumes映射,这样我就不必每次在本地更改某些代码时都重新构建。
我的猜测是我遇到的问题与 volumes 的映射有关,导致某些文件在容器中丢失/覆盖,例如在我尝试过的一些变体中,文件夹正在被映射但单个文件没有。
我创建了一个简单的 repo 来说明我的问题,只需结帐并运行 docker-compose up -d 即可查看问题,容器因以下原因而死亡:
Error: Cannot find module '/src/app/app.js'
回购链接在这里:https://github.com/josephmcdermott/nodejs-docker-issue,欢迎 PR,如果有人能为我解决这个问题,我将永远感激不尽。
更新:请查看下面的解决方案代码,感谢 ldg
Dockerfile
FROM node:4.4.7
RUN mkdir -p /src
COPY . /src
WORKDIR /src
RUN npm install
EXPOSE 3000
CMD ["node", "/src/app.js"]
docker-compose.yml
app:
build: .
volumes:
- ./app:/src/app
文件夹结构:
- app
- - * (files I want to sync and regularly update)
- app.js (initial script to call files within app/)
- Dockerfile
- docker-compose.yml
- package.json
【问题讨论】:
-
仅供参考,您的代码足够短,您可以在此处发布(至少相关部分)(鼓励简单链接)。
标签: node.js docker docker-compose