Рубрики
Uncategorized

Обслуживание приложения React с Nginx и Docker

Оригинальная статья с образцами кода и изображений доступна здесь -> HTTPS: //easyontheweb.com/se … Теги от реагирования, дежопа, докера, Nginx.

Оригинальная статья с образцами кода и изображений доступна здесь -> https://easyontheweb.com/serving-a-react-application-with-nginx-and-docker/

Если вы проходили через мой блог раньше, вы, вероятно, узнаете, что я большой поклонник реагирования. То, что я не был большим поклонником ранее был Docker, угадай почему? Потому что я ничего не знал о Docker. За последние несколько месяцев у меня была возможность работать и учиться о Docker и, честно говоря, есть все, что нужно любить об этом. В этой статье мы увидим, как мы можем использовать приложение React, используя Nginx и Docker с помощью Docker-Compose. Мы кратко посмотрим на все эти четыре вещи Но наше основное внимание было бы о том, как сделать все они работать вместе.

Кроме того, вам не важно служить приложению React AS так же, вы на самом деле можете служить любому приложению — будь то приложение Express, Ruby на приложении Rails или практически в том, что все работает на порту. Для этой статьи, тем не менее, давайте сохраним себя реагировать.

Настройка приложения RACT, если у вас уже создано приложение React, это хорошо и хорошо, вы можете в основном пропустить весь этот раздел.

Если нет, давайте быстро будем использовать приложение Create-React-App, чтобы взломать для нас приложение React. Я предполагаю, что у вас есть узел и NPM, установленные в вашей системе для настройки этого приложения (даже если вам на самом деле не нуждается в Docker позже). Если нет, простой поиск Google на том, как установить их, принесет вам больше результатов, чем я могу объяснить ..

Использование NPX для создания приложения React Вот быстрый анекдот для некоторых из вас, кто этого не знает —

NPX обозначает выполнение пакета узла, и он не требует, чтобы вы установили пакет, прежде чем иметь возможность использовать его на вашем компьютере. Он напрямую выполняет пакет из самого реестра NPM.

Кроме того, NPX устанавливается только с NPM V5.2 и выше

Просто запустившими этими тремя небольшими командами, должны получить ваше приложение reac up и запущено. Если вы знаете, реагируют и хотели бы внести изменения в приложение — продолжайте.

В этой статье мы будем использовать проект созданного самого приложения RACT.

Докеренное действие реагирования Следующим шагом для нас является подключение нашего приложения React. Если вы не знаете, что Docker, пожалуйста, проверьте эту статью — Докер для абсолютных начинающих.

Чтобы доблокировать наше приложение React React, мы должны создавать два файла в нашем каталоге rac raction App, а именно — Dockerfile и .Dockerignore.

DockerFile — это файл, который содержит всю конфигурацию для нас для создания образа Docker, а затем запустить это изображение в качестве контейнера.Dockerignore — это файл, просто как .gitignore и, честно говоря, я просто копирую и вставлю содержимое от .gitignore к моему .Dockerignore, как 99% случаев.

О, а также — пожалуйста, установите Docker в вашей системе на случай, если у вас его нет. Ни один из этого не будет работать без него 😛

DockerFile для нашего Action Application давайте немного пройдем через эту докенфиль: —

От — команды, которая выбирает базовое изображение для вашего приложения React. Как работает реагирование на узле, хорошо иметь любое изображение базового узла. Мы выбирали альпийскую здесь, так как это самый маленький по размеру. Workdir — Рабочий каталог внутри вашего контейнера Docker, в котором будет жить весь код приложения. Это хорошая практика, чтобы не иметь код приложения в корне контейнера Docker, чтобы мы выбрали/узел/приложение. Скопируйте — мы копируем файл package.json из нашего текущего каталога (т. Е. root of the raction Application) и вставьте его в каталог/Node/App (где наш код React будет жить внутри контейнера Docker). Run — мы хотим запустить NPM установить после того, как мы скопировали файл Package.json в контейнере Docker. Копировать — Копирование всех других файлов в каталоге в каталог RACT в контейнере Docker. Выставить — порт, который мы хотим выставить из нашего контейнера Docker на хост-машина. 3000, потому что это то, на нашем реактивный приложение работает. CMD — команда для запуска при запуске команды Docker Run запущена на оболочке для этого контейнера. Несмотря на то, что я объяснил все разные команды, используемые в DockerFile, вы можете Google любой из них узнать, что они делают более подробно.

Одна вещь, которая может показаться странными для вас, поэтому мы копируем Package.json отдельно, а затем все остальные файлы отдельно. Это сделано, потому что при создании контейнеров Docker использует кэширование, и каждый слой кэшируется. Следовательно, если мы скопируем все сразу, а затем запустите NPM Установить, команда установки NPM будет работать каждый раз внутри контейнера. То, как мы это сделали, он снова запустится, только если содержимое Package.json изменилось (довольно аккуратно, а?) Иначе он будет использовать ранее кэшированный слой.

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

Запустив эту команду из того, где существует ваш DockerFile, будет использовать ваш DockerFile и создать изображение, называемое My-React-App.

Это изображение затем необходимо использовать для запуска контейнера с Docker.

С помощью этой команды мы запускаем контейнер с изображением my-raction-ract — приложение, называющее контейнер my-raction-приложение и связывающую порт 3000 хост-машины в порт 3000 контейнера Docker (который мы выставили в DockerFile). Флаг -d используется для запуска контейнера в отдельночном режиме на заднем плане.

Если ваша команда была успешно запущена, вы сможете проверить ваше приложение на порт 3000 в вашем браузере, поздравляю! На самом деле мы не будем нуждаться в этом, хотя, когда мы запускаем контейнер через Docker-Compose позже с Nginx.

Nginx.

Nginx как обратный прокси-сервер, хотя я предполагаю, что вы знаете, что такое Nginx и как оно служит в нескольких целях, я просто объясню, как мы планируем использовать Nginx в качестве обратного прокси для нашей цели.

Обратный прокси в основном является веб-сервером, который расположен перед серверами приложений и направляет трафик, исходящийся от клиентов на разные серверы приложений. Серверы приложений, возможно, узел, реагируют или в основном только о любой технологии. Для других Nginx использует и выгоды, я бы очень рекомендовал вам прочитать здесь — Nginx.

В нашем случае мы хотим маршрутизировать трафик к одному приложению Ract React, но вы хотите использовать Nginx в качестве обратного прокси-сервера для маршрута трафика на разные серверы приложений, если у вас много работает на одном компьютере.

На самом деле вам на самом деле не нужно настроить nginx на своей машине, поскольку мы будем использовать Docker, чтобы создать контейнер с изображением NGINX и с личным опытом, которые я как бы понравился этот метод работы с nginx, как я думаю, это намного чище и легче работать.

Итак, создайте папку «Nginx» (или что угодно, которую вы хотели бы), и внутри этой папки нам сначала нужно создать файл конфигурации NGINX, который будет выглядеть что-то подобное: —

NGINX Config файл Вы можете назвать этот файл что-нибудь, но обязательно иметь расширение как .Conf, nginx на самом деле работает на основе этих файлов .Conf. Вам не нужно понимать большинство вещей, написанных в этом файле (даже я не 😛), но главное здесь — это местоположение и Proxy_Pass.

Таким образом, в основном мы расцениваем все запросы на местоположение «/» на « http://my-raction-app: 3000″ Отказ Просто держите свои места на данный момент, посмотрим, где это приходит только дальше.

Обратите внимание, что вы можете создавать разные файлы CONF для разных серверов приложений, которые вы хотите маршрутить, но убедитесь, что вы назовите их соответствующим образом.

Другой файл, который нам понадобится в этом каталоге NGINIX, является нашим старым добром докера, возможно, самый простой, который вы когда-либо напишете.

Вы знаете, какую команду копирования пишут, поэтому мы в основном просто копируем наш файл conf в каталог nginx ожидает, что он должен быть в (внутри контейнера, который мы будем начать).

Теперь вы можете успешно создать ваш контейнер Nginx, но это не будет использоваться в настоящее время.

Использование Docker-Compose Docker Compose является отличным инструментом для управления всеми вашими микросумами и контейнерами.

Он делает его супер легко развертывать несколько контейнеров одновременно и для них общаться друг с другом. Убедитесь, что вы его установили, хотя.

Что вам нужно сделать, это создать файл docker-compose.yml и напишите эту конфигурацию в нем: —

Это то, что будет выглядеть наш файл Docker-Compose. И свойства сборки здесь являются каталоги как наших услуг, соответственно, и Docker-Compose ожидает, что DockerFile существует в обоих этих каталогах, поскольку он будет использовать это DockerFile для запуска контейнеров.

Мы также выставляем порты как здесь, (80 и 443 от Nginx, так как это являются портами для http и https, и именно наша nginx будет подвергаться воздействию в мир). Порты могут считаться альтернативой флагам -P, который используется во время команды Docker Run.

Вы можете посмотреть, как мы назвали нашу службу RACT в качестве My-React-App, и это именно то, что мы также использовали в Proxy_Pass. Теперь два и два соединяются справа?

Последнее, что нужно сделать, — это запустить команду Final Docker-Compose и просмотреть все ваши услуги в действии.

1 Docker-Compose up -d Теперь, когда вы посещаете порт 3000 в браузере — вы сможете увидеть свою реакцию в прямом эфире. Поздравляю !!!

Для других Статьи DevOps Пожалуйста, проверьте эту ссылку здесь — DEVOPS. Если вы хотите присоединиться к группе Facebook с другими веб-разработчиками, включая меня, пожалуйста, присоединяйтесь к нам здесь — легко в группе Web Facebook.

Оригинал: «https://dev.to/sahilthakur7/serving-a-react-application-with-nginx-and-docker-301o»