Я создаю 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», когда я пытаюсь скомпилировать