Создание многоступенчатой сборки для VueJS-приложения
Описание задачи
Вам необходимо создать многоступенчатую сборку для приложения VueJS.
В качестве примера будем использовать https://github.com/amvasilyev/2020-unix-vue-template-app
Вам необходимо создать Dockerfile для создания образа с продуктовым кодом одностраничного веб-приложения, реализованного на фреймворке VueJS.
Логика работы данных приложений достаточно простая: есть 1 html-файл, который подгружает несколько JS и CSS-документов. После их загрузки контроль за выполнением приложения берёт на себя JavaScript.
Для того, чтобы скомпилировать данный пример необходимо установить NodeJS и в корне проекта выполнить:
npm ci
npm run build
В результате в проекте появится каталог dist
, который будет содержать в себе все статические файлы.
Предложение по реализации
- Склонируйте себе репозиторий из примера.
- Создайте в корне каталога Dockerfile.
- Решите задачу сборки данного приложения:
- В образ добавьте NodeJS с последним LTS-выпуском.
- Скопируйте в образ файлы
package.json
иpackage-lock.json
. Эти файлы содержат в себе список зависимостей для работы и компиляции приложения. - Выполните команды из описания задачи.
- Удостоверьтесь, что команды выполнились успешно и в каталоге
dist
находится собранное приложение.
- Решите задачу по пакетированию приложения:
- Возьмите продуктовый образ Nginx.
- Скопируйте в него собранное VueJS-приложение.
- Либо используйте настройку по умолчанию, либо добавьте настройку сайта Nginx для раздачи содержимого.
- Запустите контейнер на основании данной сборки и убедитесь, что веб-приложение доступно и работает.