[Fixed] Docker react express ap not running after one process run

Issue

Hi Dockerized a reactjs and expressjs project, everything is worked good when i have written separate docker compose file.

But now i written one compose file

docker-compose-all-dev.yml file

version: '3.7'

services:
  client:
    container_name: react-dev
    build:
      context: ./client
      dockerfile: Dockerfile.react-dev
    ports:
      - 3000:3000

  server:
    container_name: server-dev
    build:
      context: ./server
      dockerfile: Dockerfile.server-dev
    ports:
      - 5000:5000

Now it’s running client server only, why not running backend server?

But it works when i run it in two different files like this.

docker-compose-client.yml file:

version: '3.7'

services:

  client:
    container_name: react-dev
    build:
      context: ./client
      dockerfile: Dockerfile.react-dev
    ports:
      - 3000:3000

and docker-compose-server.yml file

version: '3.7'

services:
  server:
    container_name: server-dev
    build:
      context: ./server
      dockerfile: Dockerfile.server-dev
    ports:
      - 5000:5000

Can anyone tell me what is the possible issue of not running the both app when i run in one compose file? how can i solve it?

For your reference.

My Dockerfile-server-dev file

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]

and my Dockerfile.react-dev file

FROM node:14.1-alpine as build

WORKDIR /app

COPY . /app

ENV PATH /app/node_modules/.bin:$PATH

RUN yarn config delete proxy
Run npm config rm proxy

RUN npm config rm https-proxy

RUN npm install

RUN npm start

I dont know what is the issue actually running two development server in one docker-compose file

Solution

There are at least few problems, your Dockerfile.react-dev is missing entrypoint and CMD parts, you should not start your server with RUN clause. Instead use Entrypoint and possibly CMD for starting it. Another problem is, that you are exposing different port on Dockerfile-server-dev than on your compose file.

Leave a Reply

(*) Required, Your email will not be published