@bsh4

Ошибка 502 при докеризации приложения (React) с использованием проксирования Nginx'а, как исправить?

Я пытаюсь докеризировать приложение, написанное на React с использованием проксирования nginx'а. Для nginx'а использую образ с докерхаба, для nodejs пишу свой Dockerfile, помимо этого, для nginx'а пишу свой конфиг и использую его.
При запуске приложения я получаю 502 ошибку (Bad Gateway) и в логи приходит такая ошибка:

*16 connect() failed (111: Connection refused) while connecting to upstream, client: 172.28.0.1, server: ~.*, request: "GET / HTTP/1.1", upstream: "172.28.0.2:3000", host: "localhost"
*1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.28.0.1, server: ~.*, request: "GET /favicon.ico HTTP/1.1", upstream: "172.28.0.2:3000/favicon.ico", host: "localhost", referrer: "localhost"


Структура проекта следующая:
- project
  - app
    - package.json *and more*
  - docker
    - confing
      - nginx
        - default.conf
    - dockerfile
      - node
        - Dockerfile
    docker-compose.yml


Мой Dockerfile для Nodejs:
FROM node:13.12.0-alpine

# set working directory
WORKDIR /home/node/app

# install app dependencies

COPY package*.json ./

RUN npm install react-scripts -g
RUN npm install

# add app
COPY . ./

# start app
CMD ["npm", "start"]


Мой default.conf для nginx:
server {
    listen 80;
    server_name ~.*;


    location / {
        root /var/www/html/public;
        proxy_pass http://nodejs:3000;
    }
}


Мой docker-compose.yml:
version: '3'

services:
  nodejs:
    build:
      context: ../app
      dockerfile: ./../docker/dockerfile/node/Dockerfile
    container_name: nodejs
    networks:
      - my-network
    restart: unless-stopped
    volumes:
      - ../app:/home/node/app
    expose:
      - 3000
    environment:
      - NODE_ENV=development
  nginx:
    networks:
      - my-network
    image: nginx:latest
    container_name: user-nginx
    volumes:
        - ../app:/var/www/html
        - ./logs/nginx:/var/log/nginx
        - ./config/nginx:/etc/nginx/conf.d
    ports:
      - 80:80
networks:
  portfolio:
    name: my-network
    driver: bridge
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы