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

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

4 января 2024 г.

В этой статье мы создадим веб-приложение с использованием последней версии Angular, создадим образ Docker, а затем запустим этот образ в контейнере Docker.

Предварительные условия

Прежде чем начать, вам необходимо установить и настроить указанные ниже инструменты для создания приложения Angular и образа Docker.

* git: Git — это распределенная система контроля версий, которая будет использоваться для синхронизации репозитория. * Node.js и npm: Node.js — это программное обеспечение для выполнения кода JavaScript, основанное на движке Google V8. npm — это менеджер пакетов для Node.js (менеджер пакетов Node.js). Они будут использоваться для сборки и запуска приложения Angular, а также установки библиотек. * Angular CLI: Angular CLI — это служебный инструмент командной строки для Angular, который будет использоваться для создания базовой структуры приложения Angular. * Docker Engine: Docker Engine — это утилита командной строки для Docker, которая будет использоваться для создания и запуска контейнеров. * IDE (например, код Visual Studio или WebStorm< /a>): IDE (интегрированная среда разработки) — это инструмент с графическим интерфейсом, помогающий в разработке приложений, который будет использоваться для разработки приложения Angular.

Начало работы

Создайте приложение Angular

Angular — это платформа разработки для создания WEB-приложений, мобильных и настольных приложений с использованием HTML, CSS и TypeScript (JavaScript). В настоящее время Angular находится на версии 17, и Google является основным сопровождающим проекта.

1. Давайте создадим приложение с базовой структурой Angular, используя @angular/cli с отключенным рендерингом на стороне сервера (SSR), файлом маршрута и форматом стиля SCSS. .

g new angular-docker --ssr false --routing true --style scss
CREATE angular-docker/README.md (1067 bytes)
CREATE angular-docker/.editorconfig (274 bytes)
CREATE angular-docker/.gitignore (548 bytes)
CREATE angular-docker/angular.json (2806 bytes)
CREATE angular-docker/package.json (1045 bytes)
CREATE angular-docker/tsconfig.json (903 bytes)
CREATE angular-docker/tsconfig.app.json (263 bytes)
CREATE angular-docker/tsconfig.spec.json (273 bytes)
CREATE angular-docker/.vscode/extensions.json (130 bytes)
CREATE angular-docker/.vscode/launch.json (470 bytes)
CREATE angular-docker/.vscode/tasks.json (938 bytes)
CREATE angular-docker/src/main.ts (250 bytes)
CREATE angular-docker/src/favicon.ico (15086 bytes)
CREATE angular-docker/src/index.html (299 bytes)
CREATE angular-docker/src/styles.scss (80 bytes)
CREATE angular-docker/src/app/app.component.scss (0 bytes)
CREATE angular-docker/src/app/app.component.html (20884 bytes)
CREATE angular-docker/src/app/app.component.spec.ts (940 bytes)
CREATE angular-docker/src/app/app.component.ts (373 bytes)
CREATE angular-docker/src/app/app.config.ts (227 bytes)
CREATE angular-docker/src/app/app.routes.ts (77 bytes)
CREATE angular-docker/src/assets/.gitkeep (0 bytes)
✔ Packages installed successfully.
    Successfully initialized git.

2. Теперь мы запустим приложение с помощью приведенной ниже команды.

npm start

> angular-docker@0.0.0 start
> ng serve


Initial Chunk Files | Names         |  Raw Size
polyfills.js        | polyfills     |  82.71 kB | 
main.js             | main          |  23.23 kB | 
styles.css          | styles        |  96 bytes | 

                    | Initial Total | 106.03 kB

Application bundle generation complete. [1.504 seconds]
Watch mode enabled. Watching for file changes...
  ➜  Local:   http://localhost:4200/

3. Готово! Далее мы получим доступ к URL-адресу http://localhost:4200/ и проверим, работает ли приложение.

Создайте образ Docker

Docker – это программное обеспечение, которое позволяет разработчикам создавать и запускать приложения-контейнеры.

1. Давайте создадим файл Dockerfile с конфигурацией образа Docker в корневом каталоге приложения Angular.

touch Dockerfile

2. Теперь мы настроим файл Dockerfile с содержимым, указанным ниже.

FROM node:alpine

WORKDIR /usr/src/app

COPY . /usr/src/app

RUN npm install -g @angular/cli

RUN npm install

CMD ["ng", "serve", "--host", "0.0.0.0"]

Примечания:

  • Параметр FROM node:alpine определяет базовый образ Docker.
  • Параметр WORKDIR /usr/src/app определяет каталог приложения по умолчанию. Определенный каталог создается, если он не существует.
  • COPY . Параметр /usr/src/app копирует файлы и каталоги локального приложения в определенный каталог.
  • Параметр npm install -g @angular/cli устанавливает глобальную зависимость командной строки для Angular.
  • Параметр RUN npm install устанавливает зависимости приложения Angular.
  • Параметр CMD ["ng", "serve", "--host", "0.0.0.0"] создает и запускает приложение Angular для внешнего доступа.

3. Далее мы создадим изображение с помощью команды ниже.

docker build -t angular-docker .

4. После создания изображения мы проверим, было ли оно создано с помощью команды ниже.

docker images
REPOSITORY       TAG      IMAGE ID       CREATED          SIZE
angular-docker   latest   73bfa0093a57   10 seconds ago   463MB

5. Готово! Был создан образ Docker с идентификатором 73bfa0093a57 и размером 463 МБ.

Запустите Docker-контейнер

1. Давайте запустим контейнер Docker, используя образ, созданный из приложения Angular, с помощью приведенной ниже команды.

docker run -p 4201:4200 angular-docker

2. Теперь мы проверим, запущен ли контейнер, с помощью команды ниже.

docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                                       NAMES
b9f106cbdcca   angular-docker   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   0.0.0.0:4201->4200/tcp, :::4201->4200/tcp   eloquent_elgamal

3. Готово! Далее мы получим доступ к URL-адресу http://localhost:4201/ и проверим, работает ли приложение внутри контейнера Docker.

Репозиторий приложения доступен по адресу https://github.com/rodrigokamada/angular-docker.

Заключение

Подводя итог тому, что было рассмотрено в этой статье:

* Создаём Angular-приложение. * Создаём Docker-образ. * Мы запускаем Docker-контейнер. * Мы протестировали приложение Angular внутри контейнера Docker. * Вы можете использовать эту статью для создания контейнера Docker с образом приложения Angular.

Спасибо за прочтение и надеюсь, статья вам понравилась!

Это руководство было опубликовано в моем блоге на португальском.

Чтобы оставаться в курсе новых статей, подписывайтесь на меня в Twitter и LinkedIn.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE