栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

docker-compose在node_modules上的卷,但为空

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker-compose在node_modules上的卷,但为空

TL; DR工作示例,克隆并尝试: https :
//github.com/xbx/base-server


首先(在运行容器之前),需要在计算机中使用node_modules(外部映像)进行调试。

如果只想调试node_modules:

volumes:    - /path/to/node_modules:/usr/src/app/node_modules

如果要调试代码和node_modules:

volumes:    - .:/usr/src/app/

请记住,您

npm install
至少需要在容器外运行一次(或复制
docker build
生成的npm_modules
)。现在,如果您需要更多详细信息,请让我。


编辑 。因此,无需在OSX中使用npm,您可以:

  1. docker build
    然后
    docker cp <container-id>:/path/to/node-modules ./local-node-modules/
    。然后在您的docker-compose.yml中挂载这些文件并对您想要的任何内容进行故障排除。
  2. 或者,
    docker build
    在那里(Dockerfile)
    npm install
    在另一个目录中执行。然后在您的命令(CMD或docker-compose命令)中将副本(
    cp
    )复制到正确的目录,但此目录从您的计算机上空挂载(docker-compose.yml中的一个卷),然后对所需的任何内容进行故障排除。

编辑2。(选项2) 工作示例,克隆并尝试: https :
//github.com/xbx/base-server
我在您的仓库中自动完成了所有操作。

Docker文件

FROM node:6.3# Install app dependenciesRUN mkdir /build-dirWORKDIR /build-dirCOPY package.json /build-dirRUN npm install -g babel babel-runtime babel-register mocha nodemonRUN npm install# Create app directoryRUN mkdir -p /usr/src/appWORKDIR /usr/src/appRUN ln -s /build-dir/node_modules node_modules# Bundle app sourceCOPY . /usr/src/appEXPOSE 1234CMD [ "npm", "start" ]

docker-compose.yml

web:  build: .  ports:    - "1234:1234"  links:    - db # liaison avec la DB  environment:    PORT: 1234  command: /command.sh  volumes:    - ./src/:/usr/src/app/src/    - ./node_modules:/usr/src/app/node_modules    - ./command.sh:/command.shdb:  image: mongo:3.3  ports:    - "27017:27017"  command: "--smallfiles --logpath=/dev/null"

command.sh

#!/bin/bashcp -r /build-dir/node_modules/ /usr/src/app/exec npm start

请克隆我的仓库,然后做

docker-compose up
。它可以满足您的需求。PS:可以通过更好的方式(例如最佳做法等)来做同样的事情

我在OSX中,它对我有用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号