Нет связи между интерфейсом и серверной частью после контейнеризации с помощью docker-compose

#node.js #docker #docker-compose #mern

#node.js #docker #docker-compose #mern

Вопрос:

Я новичок в docker. Я пытаюсь использовать docker для контейнеризации моего приложения стека MERN. Это мой Dockerfile для серверной части

 #  Dockerfile for Node Express Backend

FROM node

# Create App Directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Install Dependencies
COPY ./package.json ./

RUN npm install 

# Copy app source code
COPY . .

# Exports
EXPOSE 5000

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

это мой файл Dockerfile для интерфейса

 # Dockerfile for React client

# Build react client
FROM node

# Working directory be app
WORKDIR /usr/src/app

COPY ./package.json ./

###  Installing dependencies

RUN npm install 

# copy local files to app folder
COPY . .

EXPOSE 3000

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

и это мой docker-compose.yml

 version: '3.9'

services:
  server:
    build:
      context: ./backend
      dockerfile: Dockerfile
    image: mockup-quora-backend
    container_name: myapp-node-server
    command: npm run start
    ports:
      - "5000:5000"
    env_file: ./backend/.env
  client:
    build:
      context: ./frontend
      dockerfile: Dockerfile
    image: mockup-quora-frontend
    container_name: myapp-react-client
    command: npm run start
    depends_on:
      - server
    stdin_open: true    
    ports:
      - "3000:3000"
 

Мой файл docker-compose вместе с обоими интерфейсными и серверными образами были успешно созданы.

 PS I:Mockup-Quora> docker-compose ps  
       Name                     Command               State           Ports
------------------------------------------------------------------------------------
myapp-node-server    docker-entrypoint.sh npm r ...   Up      0.0.0.0:5000->5000/tcp
myapp-react-client   docker-entrypoint.sh npm r ...   Up      0.0.0.0:3000->3000/tcp
 

Оба моих контейнера запущены и работают, но запросы с порта 3000 не могут связаться с портом 5000, поскольку между двумя портами не установлено соединение.

Кто-нибудь может мне помочь в устранении этой проблемы??

Комментарии:

1. Вы проксируете клиентские запросы (например, прокси в client package.json)?

2. Как клиент подключается к серверу, если не использует docker?