Невозможно развернуть приложение react в kubernetes

Я пытаюсь развернуть приложение, созданное с помощью приложения Create-React, в Kubernetes через Docker. Когда файл докера пытается создать контейнер с помощью конвейера Jenkins, он терпит неудачу с ошибкой ниже: "Запуск сервера разработки ...

Не удалось скомпилировать.

./src/index.js

Module not found: Can't resolve './App.js' in '/app/src'

Структура папок точно такая же, как и структура папок приложения по умолчанию для создания и реагирования.

Также ниже находится Dockerfile:

FROM node:10.6.0-jessie

# set working directory
RUN mkdir /app
WORKDIR /app
COPY . .

# add `/usr/src/app/node_modules/.bin` to $PATH
#ENV PATH /usr/src/app/node_modules/.bin:$PATH

RUN npm install
#RUN npm install react-scripts -g --silent

# start app
CMD ["npm", "start"]

Я не могу понять, где я могу ошибиться.

Изменить 1: я также хотел бы упомянуть, что я могу запустить контейнер докеров на моем локальном компьютере, используя эту конфигурацию.

Так что любая помощь будет оценена по достоинству.

Обновление 1:

Мне удалось выполнить команду kubectl exec -it pod_name - bash для контейнера внутри модуля. Я узнал, что по какой-то причине файл «App.js» копировался в контейнер как «app.js». Поскольку linux чувствителен к регистру, он не смог найти файл. Изменение инструкции импорта в index.js устранило проблему. Но я до сих пор не знаю, что могло вызвать копирование файла с нижним регистром, поскольку в моем локальном файле файл существует как «App.js».

Не могли бы вы отформатировать свой вопрос. Также было бы неплохо, если бы вы могли опубликовать команду, с помощью которой вы создали свое приложение-реакцию (приложение для создания и реагирования).

Peter Ittner 26.10.2018 09:42

@PeterIttner Я использовал команды, указанные в репозитории Github. Npx и Npm, если быть точным.

Radioactive 26.10.2018 17:35
1
2
715
1

Ответы 1

Проблема, с которой вы столкнулись, будет опущена, когда вы настроите процесс развертывания на более готовую к работе настройку.

В настоящее время вы устанавливаете все зависимости (разработки) на каждый узел Kubernetes, компилируете свое приложение и затем запускаете веб-сервер разработки. Это делает развернутые сборки несовместимыми и увеличивает нагрузку и раздутие узлов развертывания.

Вместо этого вы хотите создать готовую к производству сборку, запустив npm run build на машине сборки, которая скомпилирует ваше приложение и выведет его в папку build в вашем проекте. Затем вы хотите перенести эту папку на свой сервер в файле .zip, для которого потребуется установленный готовый к работе веб-сервер (настоятельно рекомендуется Nginx и отраслевой стандарт) для обслуживания статических файлов из вашей сборки.

Другие вопросы по теме