我正在模仿这里的设置https://github.com/mjhea0/node-docker-workflow。使用 docker-compose 链接 2 个 docker 容器(节点、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 有什么问题,以及如何解决它。
谢谢!