Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js docker compose模块未找到,即使它直接从容器中工作_Node.js_Docker_Docker Compose_Babeljs - Fatal编程技术网

Node.js docker compose模块未找到,即使它直接从容器中工作

Node.js docker compose模块未找到,即使它直接从容器中工作,node.js,docker,docker-compose,babeljs,Node.js,Docker,Docker Compose,Babeljs,我正在使用docker compose运行nodejs和mongo容器。我得到了错误:当我从docker compose运行节点容器时,找不到模块'@babel/preset typescript',但是如果我直接用docker运行图像,它就像一个符咒。有什么想法吗 顺便说一句,我对docker很陌生,所以如果你发现任何“非最佳实践”,也要指出它们 // docker-compose.yml version: '3' services: api-server: build: .

我正在使用docker compose运行nodejs和mongo容器。我得到了
错误:当我从docker compose运行节点容器时,找不到模块'@babel/preset typescript'
,但是如果我直接用docker运行图像,它就像一个符咒。有什么想法吗

顺便说一句,我对docker很陌生,所以如果你发现任何“非最佳实践”,也要指出它们

// docker-compose.yml
version: '3'
services:
  api-server:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - .:/home/node/code
      - /home/node/code/node_modules
    links:
      - db
    environment:
      MONGO_CONNECTION_STRING: mongodb://db:27017
  db:
    image: mongo:3

// Dockerfile
FROM node:latest

RUN yarn global add nodemon

USER node

RUN mkdir /home/node/code

WORKDIR /home/node/code

COPY --chown=node:node yarn.lock package.json ./

RUN yarn

COPY --chown=node:node . .

CMD ["nodemon", "--exec", "babel-node", "server/index.js"]

// .babelrc
{
  "presets": [
    "@babel/preset-typescript",
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": true
        }
      }
    ]
  ],
  "plugins": [
    "inline-dotenv"
  ]
}


谢谢

volumes:
块导致Dockerfile在
/home/node/code
中所做的一切被忽略,然后在其上装载一个任意旧的
节点模块树副本。如果您更改了
package.json
文件,则此文件将被忽略。我建议删除这些
卷:
(以及过时的
链接:
指令)。如果我删除
节点,热重新加载将不再有效。关于链接,没有它我如何指定操作顺序?api服务器需要在没有
卷的情况下启动DB
nodemon不工作,react中的热重新加载不工作。关于
链接
,我还可以如何指定依赖项/执行顺序?