Docker在Node.js微服务应用程序中构成卷

时间:2020-03-28 16:24:17

标签: node.js docker docker-compose

在docker-compose.yml中创建卷并运行docker-compose并在“ yarn run”步骤中运行时,它说(错误在“ / usr / src / app”中找不到package.json文件)< / p>

我的Dockerfile

FROM node:12
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json .
COPY yarn.lock .
RUN yarn
COPY . .
CMD [ "yarn", "watch" ]

docker-compose.yml

version: "3"
services:
    listings-service:
        build: ./listings-service
        volumes:
            - ./listings-service:/usr/src/app

package.json

{
  "name": "listings-service",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "watch": "babel-watch -L ./index.js"
  },
  "devDependencies": {
    "babel-watch": "^7.0.0",
    "nodemon": "^2.0.2"
  },
  "dependencies": {
    "@babel/core": "^7.9.0",
    "@babel/polyfill": "^7.8.7",
    "@babel/preset-env": "^7.9.0",
    "babel-plugin-module-resolver": "^4.0.0",
    "core-js": "3"
  }
}

1 个答案:

答案 0 :(得分:0)

为什么这里需要音量?您的Docker文件会压缩其中的所有文件,并将它们放置在Docker映像内。另外,运行yarn将安装依赖项并将其放置在/usr/src/app中。

在docker-compose ==>上添加卷将删除docker映像中的所有文件,并将其与文件放在本地路径./listings-service