#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?