Узнайте, как Dockerize и сделать его развертываемым образом

Docker - это контейнерная платформа для предприятий, которая позволяет организациям легко создавать, совместно использовать и запускать любое приложение в любом месте. Почти каждая компания помещает свои приложения в контейнеры для ускорения производственных рабочих нагрузок, чтобы их можно было развертывать в любое время, а иногда и несколько раз в день. Есть так много способов создать приложение Vue.js. Один из способов - докеризовать приложение Vue.js с помощью серверной части nodejs и создать образ докера, чтобы мы могли развертывать этот образ в любое время, а иногда и несколько раз в день.

В этом посте мы рассмотрим пример проекта и увидим пошаговое руководство о том, как мы можем докеризовать приложение Vue.js с помощью nodejs в качестве сервера.

  • Введение
  • Пример проекта
  • Докеризация приложения
  • Запуск приложения в Docker
  • Резюме
  • Заключение

Введение

В настоящее время очень распространено dockerize и развертывание образа Docker в производственной среде с помощью механизмов оркестровки контейнеров, таких как Docker Swarn или Kubernetes. Мы собираемся сделать приложение Dockerize, создать образ и запустить его в Docker на нашем локальном компьютере. Мы также можем отправить этот образ в концентратор Docker и вытащить его в любое время и в любом месте.

Вот полное руководство по разработке приложения Vue.js с nodejs в качестве внутреннего сервера. Если вы не знакомы с процессом или хотите знать, прежде чем изучать это руководство, я бы порекомендовал вам пройти через него.

Как разработать и собрать приложение Vue.js с помощью NodeJS

Предпосылка

В качестве предварительного условия вам необходимо установить Docker для рабочего стола (независимо от вашей ОС). Пожалуйста, перейдите по этой ссылке, чтобы установить Docker на свой ноутбук. После установки вы можете проверить информацию или версию Docker с помощью следующих команд.

docker info
docker --version

Пример проекта

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

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

// clone the project
git clone https://github.com/bbachi/vuejs-nodejs-example.git
// strat the api
cd api
npm install
npm run dev
// start the vue app
cd my-app
npm install
npm run serve

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

// create an image
docker build -t vue-node-image .
// running on Image
docker run -it -p  3080:3080 --name vue-node-ui vue-node-image

Докеризация приложения

Мы используем многоступенчатые сборки для создания эффективных образов докеров. Создание эффективных образов Docker очень важно для более быстрой загрузки и уменьшения поверхностных атак. В этой многоэтапной сборке создание проекта Vue и размещение этих статических ресурсов в папке dist является первым шагом. Второй шаг включает в себя использование этих статических файлов сборки и их обслуживание на сервере узлов.

Давайте создадим образ с помощью Dockerfile. Вот что нам нужно для создания имиджа.

Этап 1

  • Начать с базового образа node:10
  • Есть два файла package.json: один для сервера nodejs, а другой для VueUI. Нам нужно скопировать их в файловую систему Docker и установить все зависимости.
  • Нам нужен этот шаг в первую очередь, чтобы быстрее создавать изображения на случай, если позже в исходный код будет внесено изменение. Мы не хотим повторять установку зависимостей каждый раз при изменении каких-либо исходных файлов.
  • Скопируйте все исходные файлы.
  • Vue использует службу командной строки для создания приложения. Итак, установите CLI и установите все зависимости.
  • Запустите npm run build, чтобы создать приложение Vue, и все ресурсы будут созданы в dist папке в папке my-app.

2 этап

  • Начать с базового образа node:10
  • Возьмите сборку из этапа 1 и скопируйте все файлы в папку. / my-app / dist.
  • Скопируйте nodejs package.json
  • Установите все зависимости
  • Наконец, скопируйте server.js
  • Используйте эту команду node server.js с CMD. Это автоматически запускается, когда мы запускаем изображение.

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

// build the image
docker build -t vue-node-image .
// check the images
docker images

Запуск приложения в Docker

После создания образа Docker. Вы можете запустить образ с помощью следующей команды.

// run the image
docker run -d -it -p  3080:3080 --name vue-node-ui vue-node-image
// check the container
docker ps

Вы можете получить доступ к приложению в Интернете по этому адресу http: // localhost: 3080.

Exec в работающий контейнер

С помощью этой команды вы можете выполнить запуск в работающем контейнере и изучить файловую систему.

Резюме

  • В настоящее время очень распространено dockerize и развертывание образа Docker в производственной среде с помощью механизмов оркестровки контейнеров, таких как Docker Swarn или Kubernetes.
  • Мы используем многоступенчатые сборки для создания эффективных образов докеров.
  • Создание эффективных образов Docker очень важно для более быстрой загрузки и уменьшения поверхностных атак.
  • Вы можете построить образ с помощью этой команды docker build -t vue-node-image.
  • Вы можете запустить образ Docker с помощью этой команды docker run -d -it -p 3080:3080 --name vue-node-ui vue-node-image.
  • Вы можете выполнить команду exec в работающем контейнере с помощью этой команды docker exec -it vue-node-ui /bin/sh

Вывод

Всегда используйте многоступенчатые сборки с этим типом архитектуры. Это делает образы Docker меньше и меньше подвержены атакам.