我当前正在设置一个Docker容器,该容器将用于调试NodeJS应用程序。该容器需要支持实时重载(使用nodemon),并且需要是Linux容器(我的工作站是Windows计算机)。
我当前的设置如下:
Dockerfile.debug
FROM node:current-alpine
VOLUME /app
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production --registry=http://172.16.102.123:8182/repository/npm/
RUN npm install -g nodemon
ENV NODE_ENV=test
EXPOSE 8000
EXPOSE 9229
CMD [ "nodemon", "--inspect=0.0.0.0:9229", "--ignore", "dist/test/**/*.js", "dist/index.js" ]
docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile.debug
volumes:
- .:/app
- /app/node_modules
ports:
- 8000:8000
除依赖项外,其他所有东西都可以正常工作,因为其中某些依赖于平台。这意味着不可能简单地将node_modules目录安装到容器中(就像我对其余代码库所做的那样)。我尝试以这种方式设置文件,即每个平台的依赖关系都不同,但是最终我得到的是空的node_modules目录或主机的node_modules目录(当前设置为我提供了一个空目录)。有人知道如何解决我的问题吗?我看过其他解决方案(例如this one),但它们没有用。