簡體   English   中英

如何將 react pwa 部署到 IBM Cloud Kubernetes 集群?

[英]How do I deploy a react pwa to IBM Cloud Kubernetes cluster?

我已經創建了免費的 IBM Cloud Kubernetes 集群,並嘗試從 Docker 映像部署我的 react pwa(使用 create-react-app 創建)。 我設法在集群中部署了該應用程序,但我的 Service Worker 不起作用。

當我執行npm run buildserve -s build時,應用程序中的所有內容都在 localhost:5000 中正常工作。

但是在部署的應用程序中,在導航器中找不到 serviceWorker 並且它從不注冊 service worker:

if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
...
//never goes in here
registerValidSW(swUrl, config);
});

並且在嘗試訪問已部署應用程序中的緩存時也會收到此錯誤:

Uncaught (in promise) ReferenceError: caches is not defined
at c (runtime.js:45)
at Generator._invoke (runtime.js:264)
at Generator.O.forEach.e.<computed> [as next] (runtime.js:98)
at r (asyncToGenerator.js:3)
at l (asyncToGenerator.js:25)
at asyncToGenerator.js:32
at new Promise (<anonymous>)
at t.getRequests (asyncToGenerator.js:21)
at t.value (index.js:142)

我的 Dockerfile 看起來像這樣:

FROM node:alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx
EXPOSE 80
COPY --from=builder /app/build /usr/share/nginx/html

我的 deployment.yaml 看起來像這樣:

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
  labels:
    app: app
spec:
  type: NodePort
  ports:
  - port: 80
    name: http
  selector:
    app: app
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: my-app
        image: us.icr.io/my-app-namespace/my-app
        ports:
        - containerPort: 8080
  • 你本地安裝了哪個nodenpm版本?

    您在Dockerfile設置了最新版本的node

    FROM node:alpine as builder

  • 確定您在本地運行的版本: node --version

    現在在這里選擇正確的版本Docker Hub 節點標簽

    示例:如果您的節點版本是8 ,則需要設置一些版本,例如:

    FROM node:8-alpine

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM