У меня есть многоэтапная сборка докера для моего приложения с интерфейсом nextjs.Это выглядит так:
# Do the npm install or yarn install in the full image
FROM mhart/alpine-node AS builder
WORKDIR /app
COPY ./package.json ./
RUN npm install
COPY . .
RUN npm run build
RUN npm run export
FROM nginx
EXPOSE 3000
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/out /usr/share/nginx/html
Проблема в том, что у меня есть динамические маршруты.Поэтому я не могу выполнить команду next export, которая создает мое приложение как статическое приложение.NextJS четко заявляет, что не каждое приложение может быть развернуто как статическое приложение.Если ваше приложение должно генерировать динамические страницы во время выполнения, вы не можете развернуть его как статическое приложение.https://nextjs.org/learn/excel/static-html-export
Теперь проблема в том, что в моем развертывании докера я использую файл index.html записи, который нужно скопировать из моей следующей экспортированной папки в папку / usr / share / nginx / html в nginx.Есть ли у меня способ экспортировать 3000 из nextjs в nginx, но не создавать статические файлы и все равно держать его позади nginx, что мне нужно для копирования в nginx, если это не файл index.html?
Веб-сервер nginx, который направляет трафик клиенту или серверу, выглядит следующим образом:
upstream client {
server client:3000;
}
upstream api {
server api:4000;
}
server {
listen 80;
location / {
proxy_pass http://client;
}
location /sockjs-node {
proxy_pass http://client;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://api;
}
}