实时将更改应用于pod代码源-npm

时间:2018-10-19 04:50:38

标签: node.js reactjs npm kubernetes kubernetes-deployment

我的pod上运行了reactjs应用,并且已经将源代码从主机安装到了pod上。它工作正常,但是当我在主机中更改代码时,pod源代码也会更改,但是当我运行站点时,它并没有影响应用程序。这是我的清单,我做错了什么?

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webapp
spec:
  replicas: 1
  minReadySeconds: 15
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
  template:
    metadata:
      labels:
        app: webapp
        tier: frontend
        phase: development
    spec:
      containers:
      - name: webapp
        image: xxxxxx            
        command:
        - npm
        args:
        - run
        - dev
        env:
        - name: environment
          value:  dev
        - name: AUTHOR
          value: webapp
        ports:
        - containerPort: 3000
        volumeMounts:
        - mountPath: /code
          name: code
      imagePullSecrets:
        - name: regcred
      volumes:
        - name: code
          hostPath:
            path: /hosthome/xxxx/development/react-app/src

我知道npm不在监视我的更改,我如何在豆荚中解决它?

2 个答案:

答案 0 :(得分:1)

基本上,每次更改代码时都需要重新加载应用程序,并且在/code目录下更改代码时,pod不会重新加载或重新启动。由于您正在使用部署,因此您将不得不重新创建pod,您可以:

kubectl delete <pod-where-your-app-is-running>

export PATCH='{"spec":{"template":{"metadata":{"annotations":{"timestamp":"'$(date)'"}}}}}'
kubectl patch deployment webapp -p "$PATCH"

之后,您的Pod应该重新启动。

答案 1 :(得分:0)

Rico所说的是正确的,您需要对每个更改进行修补或重建,但是可以通过在没有vm-driver的情况下运行minikube来避免这种情况,这是在没有vm-driver的情况下运行minikube的命令,仅在Linux中有效您可以将主机路径安装到Pod。希望这会有所帮助

sudo minikube start --bootstrapper=localkube --vm-driver=none --apiserver-ips 127.0.0.1 --apiserver-name localhost -v=1