泊坞窗在构建映像时找不到模块

时间:2020-05-01 10:18:44

标签: node.js typescript docker npm docker-compose

我正在创建一个nodeJS Typescript项目,并试图创建该项目的docker映像。该项目在本地成功编译,但是当我尝试构建docker映像(使用docker builddocker-compose up)时,该项目失败了,因为它“无法找到模块x”。

一个奇怪的事情是,当我尝试将RUN npm ls <module>添加到我的dockerfile中时,它表明该模块已成功安装。我在这里看到了其他问题,包括删除docker-compose文件中的volume,但是由于我的名字根本没有,所以我迷路了。

如果有帮助,我正在Windows机器上尝试所有这些操作。

谢谢!

docker-compose.yml

version: '3.4'
services:
  app:
    build: .
    ports:
      - "3001:3000"
    image: app-nodejs
    container_name: appnodejs

dockerfile

FROM node:lts-alpine
USER root
ENV PORT 3000
RUN npm install -g pm2 typescript
RUN mkdir -p /app
COPY . /app/
WORKDIR /app
RUN npm install
RUN npm run build
EXPOSE ${PORT}
CMD [ "pm2-runtime", "start", "/app/ecosystem.config.js" ]

编辑: 我忘了提一下,它在npm run build上失败,但是我在那儿所做的就是运行tsc。我可以确认我的tsconfig已正确复制,因为在尝试编译时它会返回“找不到模块”错误

1 个答案:

答案 0 :(得分:0)

事实证明,问题是由缺少的模块(即MomentJS)引起的 https://github.com/moment/moment/issues/5494 回滚或更新到2.25.1之后,该问题似乎已解决