[英]NextJS Docker Container in K8s Throwing Uncaught SyntaxError: Unexpected token '<'
使用 npx npx create-next-app@latest --ts .
"next": "12.1.6",
"react": "18.1.0",
"react-dom": "18.1.0"
然后将一个简单的 Dockerfile 部署到 kubernetes minikube,然后通过 minikube 隧道访问端口
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN yarn install
COPY . .
CMD ["yarn", "dev"]
在浏览器中运行时在控制台中显示带有以下错误的空白页面
Uncaught SyntaxError: Unexpected token '<'
但是,在非 k8s 中通过 docker docker run
运行相同的图像可以正常工作。 我已经按照其他线程中的建议查看了绝对路径的 HTML,并看到路径指向
http://myhost.com/_next/static/chunks/react-refresh.js?ts=1654439747173
悬停在 src 上时
<div id="__next">
<script src="/_next/static/chunks/react-refresh.js?ts=1654439747173"></script>
deployment.yaml 和入口文件
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
关于让它在 kubernetes 中运行的任何想法?
我通过更新入口重写目标让它工作
改变
nginx.ingress.kubernetes.io/rewrite-target: /$2
至
nginx.ingress.kubernetes.io/rewrite-target: /$1
和路径
path: /(.*)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.