为什么 node_modules 在构建后一直从 docker 中消失?
Why do node_modules keep disappearing from docker after build?
我正在模仿这里 https://github.com/mjhea0/node-docker-workflow 的设置。使用 docker-compose 到 link 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
这是我的节点Docker文件:
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,有人可以(用外行的术语)相当彻底地解释我上面使用的回购协议有什么问题,以及如何解决它。
谢谢!
好吧,事实证明这是非常非常简单的事情,而且可能相当 silly/obvious。
测试不在运行容器内。
docker-compose run -d --no-deps node
这一行 运行 容器处于 分离 模式。这意味着当下一个命令 运行s 时,它 运行ning 在 容器之外。
要解决此问题,只需删除 -d
,以便容器内的下一个命令 运行s。
docker-compose run --no-deps node
简单。
我正在模仿这里 https://github.com/mjhea0/node-docker-workflow 的设置。使用 docker-compose 到 link 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
这是我的节点Docker文件:
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,有人可以(用外行的术语)相当彻底地解释我上面使用的回购协议有什么问题,以及如何解决它。
谢谢!
好吧,事实证明这是非常非常简单的事情,而且可能相当 silly/obvious。
测试不在运行容器内。
docker-compose run -d --no-deps node
这一行 运行 容器处于 分离 模式。这意味着当下一个命令 运行s 时,它 运行ning 在 容器之外。
要解决此问题,只需删除 -d
,以便容器内的下一个命令 运行s。
docker-compose run --no-deps node
简单。