Изменения, внесенные в путь монтирования приложения reactjs, не отражаются в веб-интерфейсе

#reactjs #docker #npm #kubernetes #openshift

#reactjs #docker #npm #kubernetes #openshift

Вопрос:

Это мой файл dockerfile, используемый для создания образа для развертывания kubernetes / openshift:

 FROM node:8.11.4
RUN mkdir /app
WORKDIR /app
COPY package.json .
RUN npm install
COPY src src
COPY public public
EXPOSE 3000
CMD ["npm", "start"]
  

Исходный код, из которого клонировано это приложение:https://github.com/nodeshift-starters/react-web-app

Это мое развертывание yaml:

 apiVersion: v1
kind: DeploymentConfig
metadata:
  name: 'react-app'
  labels:
    app: 'react-app'
spec:
  template:
    spec:
      initContainers:
        - name: init-react
          imagePullPolicy: IfNotPresent
          image: "docker-registry.default.svc:5000/${NAMESPACE}/react-app"
          command: ["sh", "-c"]
          args: ["cp -n -r /app/* /tmp/app; sleep 1; ls -al"]
          volumeMounts:
            - mountPath: /tmp/app
              name: react-storage-volume

      containers:
        - image: 'react-app:latest'
          name: 'react-app'
          securityContext:
            privileged: false
          ports:
            - containerPort: 3000
              name: http
              protocol: TCP
          resources:
            limits:
              memory: 500Mi
          volumeMounts:
            - name: react-storage-volume
              mountPath: /app                  

      volumes:
        - name: react-storage-volume
          persistentVolumeClaim:
            claimName: "${pv_react}-claim"

    metadata:
      labels:
        app: 'react-app'
  replicas: 1
  selector:
    app: 'react-app'
  triggers:
    - type: ConfigChange
    - type: ImageChange
      imageChangeParams:
        automatic: true
        containerNames:
          - 'react-app'
        from:
          kind: ImageStreamTag
          name: 'react-app:latest'
  

/app Смонтирован путь монтирования nfs: /mnt/k8sMount/react-data/ .

Наблюдение заключается в том, что всякий раз, когда вносятся изменения в src/App.js путь монтирования NFS, он обновляется в модуле (у меня есть exec для модуля и проверил его содержимое), но когда веб-интерфейс обновляется в браузере, изменения не отображаются. Другое наблюдение заключается в том, что если изменения в src/App.js внутри модуля, то при обновлении веб-интерфейса в браузере изменения появляются.

Поскольку я хотел бы, чтобы изменения, внесенные в src/App.js путь монтирования NFS, отражались в веб-интерфейсе, пожалуйста, предложите мне, если что-то не так, развертывание или какую-либо альтернативу для достижения этого. Заранее спасибо.

Комментарии:

1. Kubernetes не имеет смысла как живая среда разработки. Я бы рекомендовал удалить все части тома и контейнер инициализации из этой настройки Kubernetes, чтобы вы фактически запускали код из образа Docker. Если вам нужна локальная среда разработки, node очень проста в установке, и я бы рекомендовал использовать это.