Creación de una aplicación de mecanografiado NextJS predeterminada con npx create-next-app@latest --ts .
"next": "12.1.6", "react": "18.1.0", "react-dom": "18.1.0"y luego un Dockerfile simple implementado en kubernetes minikube y luego minikube tunnel para acceder al puerto
FROM node:alpine WORKDIR /app COPY package.json . RUN yarn install COPY . . CMD ["yarn", "dev"]Muestra una página en blanco con los siguientes errores en la consola cuando se ejecuta en el navegador
Uncaught SyntaxError: Unexpected token '<' Sin embargo, ejecutar la misma imagen a través docker run , en no k8s, funciona bien. He echado un vistazo al HTML para rutas absolutas como se sugiere en otros hilos y veo que la ruta apunta a
http://myhost.com/_next/static/chunks/react-refresh.js?ts=1654439747173
Al pasar el cursor sobre src
<div id="__next"> <script src="/_next/static/chunks/react-refresh.js?ts=1654439747173"></script>deployment.yaml y archivos de entrada
apiVersion: apps/v1 kind: Deployment metadata: name: front-depl spec: replicas: 1 selector: matchLabels: app: front template: metadata: labels: app: front spec: containers: - name: front imagePullPolicy: Never image: mine/front:latest resources: limits: memory: 512Mi cpu: "1" --- apiVersion: v1 kind: Service metadata: name: front-service spec: selector: app: front ports: - name: front protocol: TCP port: 3000 targetPort: 3000 // ingress apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 spec: rules: - host: myhost.com http: paths: - path: /?(.*) pathType: Prefix backend: service: name: front-service port: number: 3000¿Alguna idea sobre cómo hacerlo funcionar en Kubernetes?
Lo hice funcionar al actualizar el objetivo de reescritura de ingreso
cambiando
nginx.ingress.kubernetes.io/rewrite-target: /$2a
nginx.ingress.kubernetes.io/rewrite-target: /$1y el camino a
path: /(.*)