Home > Software design >  Dev dependencies not getting installed in docker container
Dev dependencies not getting installed in docker container

Time:01-29

I am new to docker. I am trying to create a container for react and express and run both the containers on same network using docker compose.

Below is my dockerfile for frontend:

FROM node:alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm","run","start"]

Below is my dockerfile for backend

FROM node:alpine

WORKDIR /app

COPY package*.json ./

RUN NODE_ENV=development npm install

COPY . .

EXPOSE 5000

CMD ["npm","run","server"]

Below is my docker-compose.yml

version: '3'
services:
  client:
    build: 
      context: './frontend'
      dockerfile: Dockerfile
    ports:
    - 3000:3000
    container_name: react_cont
    environment:
      - WATCHPACK_POLLING=true
    networks:
    - mern
    volumes:
    - ./frontend:/app
    depends_on:
    - server
  server:
    build:
      context: './backend'
      dockerfile: Dockerfile
    ports:
    - 5000:5000
    container_name: express_cont
    networks:
    - mern
    volumes:
    - ./backend:/app
networks:
  mern:

react container is getting is created and running successfully but the express container is not getting created with an error

sh: nodemon: not found

I had installed nodemon as my dev dependency.

Any help is appreciated. Thanks in advance.

CodePudding user response:

You need to install nodemon package globally in your Docker:

RUN NODE_ENV=development npm install && npm --global install nodemon

CodePudding user response:

Answering my own Question.

I had installed nodemon globally in my machine but forgot to install it as a dependency for my current project.

Since nodemon was installed globally in my machine i was not getting any errors while i was trying to run my server.js using nodemon. nodemon server.js in scripts did not throw any error while i was in developing my project locally prior moving it to docker container.

But since neither my package.json had nodemon as my dependency and i had not installed it separately in my container nodemon did not get installed and it gave me error.

  • Related