«Ошибка: не удается найти модуль» с Nodemon и Docker, даже с подключенными томами - PullRequest
0 голосов
/ 12 февраля 2019

Я получаю ошибки, что мои модули не существуют, когда я запускаю nodemon внутри Docker и сохраняю файлы узлов.Требуется пара спасений, прежде чем он выдаст ошибку.У меня есть смонтированные тома, как в ответах здесь , но я все еще получаю сообщение об ошибке, и я не слишком уверен, что его вызывает.

Вот мой файл docker-compose.yml.

version: "3.7"
services:
  api:
    container_name: api
    build:
      context: ./api
      target: development
    restart: on-failure
    ports:
      - "3000:3000"
      - "9229:9229"
    volumes:
      - "./api:/home/node/app"
      - "node_modules:/home/node/app/node_modules"
    depends_on:
      - db
    networks:
      - backend
  db:
    container_name: db
    command: mongod --noauth --smallfiles
    image: mongo
    restart: on-failure
    volumes:
      - "mongo-data:/data/db"
      - "./scripts:/scripts"
      - "./data:/data/"
    ports:
      - "27017:27017"
    networks: 
      - backend
networks:
  backend:
    driver: bridge
volumes:
  mongo-data:
  node_modules:

Вот мой файл docker:

# Ger current Node Alpine Linux image.
FROM node:alpine AS base
# Expose port 3000 for node.
EXPOSE 3000
# Set working directory.
WORKDIR /home/node/app
# Copy project content.
COPY package*.json ./

# Development environment.
FROM base AS development
# Set environment of node to development to trigger flag.
ENV NODE_ENV=development
# Express flag.
ENV DEBUG=app
# Run NPM install.
RUN npm install
# Copy source code.
COPY . /home/node/app
# Run the app.
CMD [ "npm", "start" ]

# Production environment.
FROM base AS production
# Set environment of node to production to trigger flag.
ENV NODE_ENV=production
# Run NPM install.
RUN npm install --only=production --no-optional && npm cache clean --force
# Copy source code.
COPY . /home/node/app
# Set user to node for better security.
USER node
# Run the app.
CMD [ "npm", "run", "start:prod" ]

1 Ответ

0 голосов
/ 13 февраля 2019

Оказывается, я не положил .dockerignore в нужную папку.Вы должны положить его в контекстную папку.

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