n9i*_*els 5 node.js typescript docker docker-compose
我正在尝试创建一个在开发过程中托管 NodeJS 项目的 docker 镜像。它只是使用 nodemon 执行 NodeJS 应用程序,因此每次我进行更改时它都会重新启动。
我还使用 TypeScript 来开发应用程序。TypeScript 必须有权访问已安装的@types模块。但是,应该显示node_modules文件夹的已安装卷是空的。所以 TypeScript 找不到模块,也无法编译。我的 IDE 也在抱怨(显然)
有没有办法让node_modulesTypeScript 可见?
这是我的 Dockerfile:
FROM node:alpine
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json .
RUN npm install
# Bundle app source
COPY . .
# Run app
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
这是我的 docker-compose.yml:
version: "3"
services:
server:
build: .
environment:
- NODE_ENV=development
command: npm run debug
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
ports:
- "8080:8080"
- "9229:9229"
Run Code Online (Sandbox Code Playgroud)
您应该为您使用单独的文件夹node_modules,然后在NODE_PATH环境中设置该文件夹
FROM node:alpine
# Create app directory
ENV NODE_PATH /usr/node_modules
WORKDIR /usr/node_modules
# Install app dependencies
COPY package.json .
RUN npm install
WORKDIR /usr/src/app
# Bundle app source
COPY . .
# Run app
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
这样你的代码将是独立的,并且node_modules图像本身将存在。每当您添加新模块时,您都将重建映像,否则开发可以在安装的卷上顺利进行
| 归档时间: |
|
| 查看次数: |
761 次 |
| 最近记录: |