【发布时间】:2015-04-24 19:14:27
【问题描述】:
我正在模仿此处https://github.com/mjhea0/node-docker-workflow 的设置。使用 docker-compose 链接 2 个 docker 容器(node、redis)。
这是circle ci文件:
machine:
services:
- docker
dependencies:
override:
- sudo pip install -U docker-compose
test:
override:
- docker-compose run -d --no-deps node
- cd node; npm test
这是我的节点 Dockerfile:
FROM dockerfile/nodejs
RUN mkdir /src
RUN npm install nodemon -g
WORKDIR /src
ADD . /src
RUN npm install
EXPOSE 3000
CMD npm start
测试不断失败,因为找不到chai。这是因为 node_modules 在构建完成后消失。
在 circle.yml 文件中的这两个步骤之间,node_modules 由 npm install 安装,然后在运行 npm test 命令时它们就消失了。
test:
override:
- docker-compose run -d --no-deps node
- cd node; npm test
我不知道为什么会这样。由于我刚开始使用 Docker,有人可以(用外行的话)相当彻底地解释我上面使用的 repo 有什么问题,以及如何解决它。
谢谢!
【问题讨论】:
-
如果没有这些额外的东西/废话,dockerfile 是否可以工作?如果你刚开始使用 docker,也许专注于 'docker' 部分本身。如果您定义了 VOLUME,它们不会持久存在。
-
即使没有定义的卷,node_modules 似乎也无法持续足够长的时间。
docker-compose run -d --no-deps node通过 npm install 构建和安装 node_modules,然后在运行cd node; npm test时,它们已经消失了。 ://
标签: javascript node.js continuous-integration docker circleci