Node.js docker compose模块未找到,即使它直接从容器中工作
我正在使用docker compose运行nodejs和mongo容器。我得到了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运行节点容器时,找不到模块'@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中的热重新加载不工作。关于链接
,我还可以如何指定依赖项/执行顺序?