Добрый день! Решил попробовать для своего проекта docker. Проект на next.js
Использую docker-compose. Все хорошо до того момента как к проекту добавляю контейнер с nginx.
Браузер выдает ошибку -
Аccess to XMLHttpRequest at 'localhost:3000/api/categories' from origin 'surgut.expert.local' has been blocked by CORS
Меняю в настройках next.js поменять адрес API на
surgut.expert.local/api, то выдает ошибку
Error: connect ECONNREFUSED 127.0.0.1:80
Настройки docker-compose:
version: '3'
services:
next:
build: ./next
container_name: surgut-expert-next
command: npm run dev
volumes:
- ./next:/usr/src/app
restart: unless-stopped
ports:
- "3000:3000"
networks:
- surgut-expert-network
nginx:
image: nginx:stable-alpine
container_name: surgut-expert-nginx
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf.dev:/etc/nginx/conf.d/nginx.conf
depends_on:
- next
- phpmyadmin
- db
networks:
- surgut-expert-network
db:
image: mysql
container_name: surgut-expert-db
volumes:
- dbdata:/var/lib/mysql
restart: always
ports:
- "3036:3036"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: surgut_expert
networks:
- surgut-expert-network
phpmyadmin:
image: phpmyadmin
container_name: surgut-expert-phpmyadmin
restart: always
ports:
- "1234:80"
environment:
- PMA_ARBITRARY=1
networks:
- surgut-expert-network
volumes:
dbdata:
networks:
surgut-expert-network:
driver: bridge
Настройки nginx:
server {
listen 80;
server_name surgut.expert.local;
location / {
proxy_pass http://next:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;
}
}
Как починить? Самое интересное, что пока не ставишь nginx, то все работает нормально, но с nginx перестает.