Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Эпизод 13 — Dockerize React: многоэтапная сборка образа NGINX размером 40 МБ

Автор: AWS With Pravin Mishra

Загружено: 2025-11-07

Просмотров: 174

Описание:

Мы возьмём работающее приложение React на виртуальной машине и преобразуем его в образ Docker производственного уровня, используя многоэтапную сборку: скомпилируем с помощью Node на этапе 1, а затем запустим статическую сборку с помощью NGINX на этапе 2. Результат: небольшой, безопасный и быстрый образ, который можно запускать где угодно.

Вам предстоит:
Очистить устаревшую виртуальную машину (удалить /var/www/html)
Написать многоэтапный Dockerfile (сборщик Node → среда выполнения NGINX)
Сборка, запуск и проверка на порту 80
Отслеживать логи в реальном времени и управлять жизненным циклом контейнера
Дополнительно: конфигурация NGINX, совместимая со SPA (обработка клиентских маршрутов)
Бонус: .dockerignore для экономии места в образах

*Многоэтапный Dockerfile (React)*
---------- Этап 1: Сборка (Node)
FROM node:18-alpine AS build
WORKDIR /app

Установка зависимостей с использованием кэшированных слоев
COPY package*.json ./
RUN npm ci

Копировать исходный код и сборку
COPY . .
RUN npm run build

---------- Этап 2: Выполнение (NGINX)
FROM nginx:1.27-alpine
Необязательно: пользовательская конфигурация NGINX для SPA (см. ниже)
COPY nginx.conf /etc/nginx/conf.d/default.conf

Копировать скомпилированный статический сайт
COPY --from=build /app/build /usr/share/nginx/html

EXPOSE 80
Команда NGINX по умолчанию уже установлена

*Конфигурация NGINX для SPA (маршрутизация на стороне клиента)*
nginx.conf
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri /index.html;
}
Статическое кэширование (настройте по мере необходимости)
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico)$ {
expires 7d;
access_log off;
}
}

*.dockerignore (сохранить контекст крошечным)*
node_modules
build
.git
.gitignore
*.log
.DS_Store
.env

--------
*Дополнительные ресурсы:*
Мой курс AWS для начинающих: https://www.udemy.com/course/aws-fund...
DevOps для начинающих: https://www.udemy.com/course/devops-f...
AWS Mastery: 26 облачных проектов AWS для инженеров и архитекторов - https://www.udemy.com/course/aws-mast...

#Docker #React #DevOps #Контейнеры #Dockerfile #MultiStageBuild #NGINX #Alpine #JavaScript #NodeJS #SPA #WebPerformance #CICD #Cloud

Эпизод 13 — Dockerize React: многоэтапная сборка образа NGINX размером 40 МБ

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

EP 14 — Разъяснение сетевых интерфейсов Docker: мост, хост, отсутствие моста (+ настраиваемый DNS...

EP 14 — Разъяснение сетевых интерфейсов Docker: мост, хост, отсутствие моста (+ настраиваемый DNS...

Микросервисы на практике - сервис продажи билетов

Микросервисы на практике - сервис продажи билетов

Главные изменения в OpenMediaVault 8 (и почему это важно).

Главные изменения в OpenMediaVault 8 (и почему это важно).

LangGraph Lecture |  Advance RAG Project

LangGraph Lecture | Advance RAG Project

Кризис на Патриках: «вечный праздник» закончился | Рестораны закрываются, элитный бизнес Москвы

Кризис на Патриках: «вечный праздник» закончился | Рестораны закрываются, элитный бизнес Москвы

Уязвимости в современных JavaScript-фреймворках на примере React, Vue и Angular / А. Важинская

Уязвимости в современных JavaScript-фреймворках на примере React, Vue и Angular / А. Важинская

Сисадмины больше не нужны? Gemini настраивает Linux сервер и устанавливает cтек N8N. ЭТО ЗАКОННО?

Сисадмины больше не нужны? Gemini настраивает Linux сервер и устанавливает cтек N8N. ЭТО ЗАКОННО?

Docker Zero to Hero — Production-Grade Containers for DevOps (Full Series)

Docker Zero to Hero — Production-Grade Containers for DevOps (Full Series)

Декораторы Python — наглядное объяснение

Декораторы Python — наглядное объяснение

FFmpeg: бесплатный видеоконвертер из командной строки

FFmpeg: бесплатный видеоконвертер из командной строки

Что популярно в мире JavaScript #программирование

Что популярно в мире JavaScript #программирование

EP 01 — Почему Docker (сейчас)? От виртуальных машин к контейнерам за 5 минут

EP 01 — Почему Docker (сейчас)? От виртуальных машин к контейнерам за 5 минут

Почему тебе нужен свой домашний сервер? Показываю реальный опыт HOMELAB

Почему тебе нужен свой домашний сервер? Показываю реальный опыт HOMELAB

Что говорит история недавних войн о перспективе перемирия России и Украины?

Что говорит история недавних войн о перспективе перемирия России и Украины?

Тайны Патриарха. Любовница, работа на КГБ и украденные миллиарды. Правда о Патриархе Кирилле

Тайны Патриарха. Любовница, работа на КГБ и украденные миллиарды. Правда о Патриархе Кирилле

Забудь VS Code — Вот Почему Все Переходят на Cursor AI

Забудь VS Code — Вот Почему Все Переходят на Cursor AI

Microsoft begs for mercy

Microsoft begs for mercy

Kubernetes — Простым Языком на Понятном Примере

Kubernetes — Простым Языком на Понятном Примере

System Design was HARD until I Learned these 30 Concepts

System Design was HARD until I Learned these 30 Concepts

ОБНОВЛЕНО — Создайте свою первую лямбда-функцию AWS | Учебное пособие по AWS для начинающих

ОБНОВЛЕНО — Создайте свою первую лямбда-функцию AWS | Учебное пособие по AWS для начинающих

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com