Сборка и запуск Angular приложения в Docker контейнере

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В этой статье мы рассмотрим как собирать и запускать Angular приложение в Docker контейнере. Для этого будем использовать файл Dockerfile, где будут содержаться все необходимые инструкции. Наше приложение будет билдится и хостить свой production-ready код, в контейнере с веб сервером NGINX.

Условимся что у нас уже существует некое приложение sample-app, поэтому шаг с созданием приложения опустим.

Создание Dockerfile

Для начала нам необходимо создать в корне нашего Angular приложения, файл с именем Dockerfile.

Далее открываем наш Dockerfile и пишем в него следующее шаги:

FROM node:12.7-alpine as build - здесь мы говорим использовать образ с nodejs версии 12.7 и Alpine Linux в качестве ос, если версия ноды не важна можно просто вписать node:latest.

WORKDIR /usr/local/app - этой строчкой указываем путь рабочей папки нашего приложения.

COPY ./ /usr/local/app/ - копируем файлы нашего приложения в рабочую папку>

RUN npm install и RUN npm run build - тут запускается npm и устанавливает пакеты из package.json и запускается билд приложения.

Это будет является первой стадией, при которой будет разворачиваться нода и билдится наше приложение.

Теперь добавим вторую стадию в наш Dockerfile, в которой наш готовый продакшен билд приложения будет запускаться на NGINX на 80 порту. Для этого впишем следующие шаги:

FROM nginx:1.17.1-alpine - разворачиваем образ с NGINX’ом, тут так же можно просто написать nginx:latest если не важна версия.

COPY --from=build /usr/local/sample-app/dist/app /usr/share/nginx/html - тут копируем нашу прод сборку приложения и устанавливаем как содержимое NGINX сервера.

EXPOSE 80 - открываем доступ к приложению на 80 порту.

Конечный Dockerfile будет выглядить так:

# Stage 1
FROM node:12.7-alpine as build
WORKDIR /usr/local/app
COPY ./ /usr/local/app/
RUN npm install
RUN npm run build

# Stage 2
FROM nginx:1.17.1-alpine
COPY --from=build /usr/local/sample-app/dist/app /usr/share/nginx/html
EXPOSE 80

Билд и запуск контейнера

Далее делаем билд контейнера командой:

docker build -t sample-app-image .

Проверяем командой docker image ls что образ нашего контейнера появился в списке доступных:

Запускаем команду:

docker run -d -p 8080:80 sample-app-image:latest

И проверяем запуск приложения по адресу http://localhost:8080/

Заключение

В данной статье коротко рассмотрели как собирать и запускать контейнер с Angular приложением. Полученный образ теперь можно отправлять в registry для развертывания в облаке, используя команду docker push.

Источник: https://habr.com/ru/post/566210/


Интересные статьи

Интересные статьи

Недавно Google, Apple, Xiaomi и иже с ними добавили во многие свои устройства уже готовые к употреблению или встроенные в прошивку упражнения с дыханием. Одно это прекрас...
NASA Телескоп «Джеймс Уэбб», именуемый также JWST или Webb, завершил финальные функциональные тесты. На космическом аппарате проверили работу внутренней электроники и систем связи. Ис...
Настройку VNC и RDP на виртуальном сервере мы уже освоили, осталось изучить еще один вариант подключения к виртуальному рабочему столу Linux. Возможности созданного компанией NoMach...
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...
В связи с тем, что мобильные устройства уже давно имеют обширный функционал, то задачи автоматизации можно смело переносить и на них. И, как нельзя лучше, здесь так же хорошо подходит cron дл...