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

我对Docker非常陌生,我想在我的计算机上映射node_modules文件夹(出于调试目的)。

这是我的docker-compose.yml

web:

build: .

ports:

- "3000:3000"

links:

- db

environment:

PORT: 3000

volumes:

- .:/usr/src/app

- /usr/src/app/node_modules

db:

image: mongo:3.3

ports:

- "27017:27017"

command: "--smallfiles --logpath=/dev/null"

我在Mac上使用Docker。当我运行时,docker-compose up

-d一切正常,但是它在我的计算机上创建了一个node_modules文件夹,但是它是空的。我进入容器和ls

node_modules的仓库,所有软件包都在那里。

我也如何在计算机上的容器中获取内容?

谢谢

回答:

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 dependencies

RUN mkdir /build-dir

WORKDIR /build-dir

COPY package.json /build-dir

RUN npm install -g babel babel-runtime babel-register mocha nodemon

RUN npm install

# Create app directory

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

RUN ln -s /build-dir/node_modules node_modules

# Bundle app source

COPY . /usr/src/app

EXPOSE 1234

CMD [ "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.sh

db:

image: mongo:3.3

ports:

- "27017:27017"

command: "--smallfiles --logpath=/dev/null"

command.sh

#!/bin/bash

cp -r /build-dir/node_modules/ /usr/src/app/

exec npm start

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

我在OSX中,它对我有用。

以上是 docker-compose在node_modules上的卷,但为空 的全部内容, 来源链接: utcz.com/qa/409944.html

回到顶部