Cors и Docker не дружат
Есть проект построенный на react + node, все это с базой postgres. Без докера все работает отлично, фронт взаимодействует с бэком без ошибок со стороны cors так как изначально в app.js есть настройка этих самых корсов:
app.use(function (request, response, next) {
response.header("Access-Control-Allow-Origin", "http://localhost:3000");
response.header("Access-Control-Allow-Headers", "origin, x-requested-with, content-type, authorization");
response.header("Access-Control-Allow-Methods", "GET, PUT, PATCH, POST, DELETE, OPTIONS");
response.header("Access-Control-Allow-Credentials", "true");
next();
});
Но только я все собираю в 3 докер контейнера (фронт, бэк и база) сразу у меня блокируется взаимодействие фронта с бэком из-за ошибки cors:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5002/api/login. (Reason: CORS request did not succeed). Status code: (null)
Уже много чего перепробовал, и образы nginx как только не настраивал, и ссылку в заголовках в настройках корс менял. Ну просто тупик... Помогите пожалуйста, как это все настроить?
Миграции выполнены, база работает, есть отдельный от фронта сервис который на постоянке парсит в эту базу новости, он при запуске через докер все спокойно парсит и добавляет и дальше
Также прикрепляю свои докер файлы:
docker-compose.yaml
version: '3'
services:
front-react:
build:
context: ./client
environment:
NODE_ENV: development
depends_on:
- server-dev
volumes:
- ./client:/client
- /client/node_modules
ports:
- "3000:3000"
server-dev:
build:
context: ./server
environment:
NODE_ENV: development
ports:
- "5002:5002"
depends_on:
- db-dev
volumes:
- ./server:/server
- /server/node_modules
db-dev:
image: postgres:14.2-alpine
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=postgres
- POSTGRES_DB=rssParser
ports:
- "5432:5432"
volumes:
server-dev:
front Dockerfile:
FROM node:14.16.1-alpine3.13
RUN mkdir -p ./client
WORKDIR /client
COPY package*.json ./
COPY . .
EXPOSE 3000
RUN npm install
CMD npm start
backend Dockerfile:
FROM node:14.16.1-alpine3.13
RUN mkdir /server
WORKDIR /server
COPY package*.json ./
RUN npm install -g nodemon
RUN npm install -g sequelize-cli
RUN npm install
COPY . .
EXPOSE 5002
CMD npm start
Попадал я в гугле на статье про 2 файла и образы собранные, и я подозреваю что нужно подключить 4й докер контейнер nginx в который засунуть 2 файла с настройками для моего апи, но у меня с ним точно такая же проблема. Как не настраивай, может я как то провтыкал...