docker Не удается найти модуль при построении изображения - PullRequest
0 голосов
/ 01 мая 2020

Я создаю nodeJS проект Typescript и пытаюсь создать docker изображение проекта. Проект успешно компилируется на локальном компьютере, но когда я пытаюсь создать образ docker (используя docker build или docker-compose up), он впечатляюще проваливается, потому что он «Не может найти модуль x».

Странно то, что когда я пытался добавить RUN npm ls <module> в мой dockerfile, он показывает, что модуль был успешно установлен. Я видел здесь другие вопросы, которые включают удаление volume в docker -композитном файле, но, поскольку у меня его даже нет с самого начала, я потерян.

Я пытаясь сделать все это на 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 запустить сборку, но все, что я делаю там, это запуск ts c. Я могу подтвердить, что мой tsconfig был правильно скопирован, так как он возвращает ошибку «Cannot find module», когда я пытаюсь скомпилировать

1 Ответ

0 голосов
/ 04 мая 2020

Оказывается, проблема была вызвана отсутствующим модулем, а именно MomentJS https://github.com/moment/moment/issues/5494 После отката или обновления до 2.25.1 проблема, похоже, была решена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...