// Create one docker-compose.yml // Folder structure => docker-compose.yml your-app version: "3.8" services: client: container_name: frontend restart: always build: ./docker-compose.yml ports: - "3000:3000" # Expose the client on port 3000 cd your-app touch Dockerfile FROM node:alpine WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD [ "npm", "start" ] --------- To run it cd .. to run the docker file : docker-compose up -d//make a file called Docker FROM node:latest //sets a folder RUN mkdir -p /app/src //sets working directory WORKDIR /app/src //copy the package COPY package.json . //runs npm install RUN npm install COPY . . //exposes port 3000 EXPOSE 3000 //runs the comand npm start CMD ["npm", "start"]# pull official base image FROM node:13.12.0-alpine # set working directory WORKDIR /app # add `/app/node_modules/.bin` to $PATH ENV PATH /app/node_modules/.bin:$PATH # install app dependencies COPY package.json ./ COPY package-lock.json ./ RUN npm install --silent RUN npm install react-scripts@3.4.1 -g --silent # add app COPY . ./ # start app CMD ["npm", "start"] # Stage 1 - Building image FROM node:8.7.0-alpine as node WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # Stage 2 - Running image FROM bitnami/nginx:1.14.2 COPY --from=node /usr/src/app/build /var/www/my-app COPY ./nginx.conf /opt/bitnami/nginx/conf/nginx.conf version: '3' services: backend: env_file: "./backend/backend.env" build: context: ./backend dockerfile: ./Dockerfile image: "dmurphy1217/twitter-sentiment-backend" ports: - "5000:5000" frontend: build: context: ./client dockerfile: ./Dockerfile image: "dmurphy1217/twitter-sentiment-frontend" ports: - "3000:3000" links: - "backend:be"npm install cors express mysql