Nodemon崩溃了我的Kubernetes部署(导致此问题的node_modules)

我一直在搞kubernetes,我试图用minikube,node和nodemonbuild立一个开发环境。 我的图像工作正常,如果我在一个独立的容器中运行它,但它会崩溃,如果我把它放在我的部署中出现以下错误。

yarn run v1.3.2 $ nodemon --legacy-watch --exec babel-node src/index.js /app/node_modules/.bin/nodemon:2 'use ^^^^^ SyntaxError: Invalid or unexpected token at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:599:28) at Object.Module._extensions..js (module.js:646:10) at Module.load (module.js:554:32) at tryModuleLoad (module.js:497:12) at Function.Module._load (module.js:489:3) at Function.Module.runMain (module.js:676:10) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 

我的package.json中有一个dev命令

 "dev": "nodemon --legacy-watch --exec babel-node src/index.js", 

我的图像正在使用以下docker文件构build

 FROM node:8.9.1-alpine WORKDIR /app COPY . /app/ RUN cd /app && yarn install 

我的部署就是这样设置的

 --- apiVersion: apps/v1beta1 kind: Deployment metadata: labels: app: nodeapp name: nodeapp spec: replicas: 3 selector: matchLabels: app: nodeapp template: metadata: labels: app: nodeapp spec: containers: - name: nodeapp imagePullPolicy: Never image: app:latest command: - yarn args: - run - dev ports: - containerPort: 8080 volumeMounts: - name: code mountPath: /app volumes: - name: code hostPath: path: /Users/adam/Workspaces/scratch/expresssite --- apiVersion: v1 kind: Service metadata: name: nodeapp labels: app: nodeapp spec: selector: app: nodeapp ports: - name: nodeapp port: 8080 nodePort: 30005 type: NodePort --- 

这显然是在nodemon binstub中'use strict' ,但我不知道为什么。 它作为一个独立的docker容器工作得很好。 目标是让nodemon在重新开始每个窗格中的节点进程时保存对开发的更改,但是我真的不确定我的错误在哪里。

编辑:

我已经把它缩小了一点。 它从文件主机挂载node_modules ,这是导致它崩溃的原因。 我有一个.dockerignore文件设置。 有没有一种方法来让它像这样工作(所以如果我运行npm install它将获取更改)还是有办法让它使用与图像一起安装的node_modules?