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

Что нам понадобится

Перед тем, как начать, нам понадобятся следующие инструменты:

  • Docker – его можно загрузить с официального сайта Docker;
  • Node.js и NPM – чтобы разрабатывать приложение на Express.js;
  • Опционально: Git – для управления версиями и выкладывания приложения на площадки;
  • Редактор кода – любой по вашему выбору (например, VS Code).

Шаг 1: Создание Express.js приложения

Первым шагом я создам простое Express.js приложение. Для этого я установлю необходимые зависимости и создам файл server.js с основным кодом серверной части.

1.1 Установка Express.js

Откройте терминал и перейдите в папку, где хотите создать приложение. Затем выполните следующую команду:

Это установит Express.js в ваш проект.

1.2 Создание основного кода сервера

Откройте редактор кода и создайте файл server.js. Вставьте следующий код:

Теперь Express.js приложение готово к развертыванию!

Шаг 2: Создание Dockerfile

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

2.1 Создание Dockerfile

Создайте файл Dockerfile в корневой папке проекта. Вставьте следующий код:

Этот файл определяет, что мы хотим создать образ на основе Node.js дистрибутива (инструкция FROM node). Затем мы устанавливаем рабочую директорию и копируем файлы package.json и package-lock.json. После этого устанавливаем зависимости (инструкция RUN npm install), копируем остальные файлы проекта и открываем порт 3000 (инструкция EXPOSE 3000). В конце мы запускаем сервер Express.js командой CMD ["node", "server.js"].

2.2 Сборка Docker образа

Теперь мы можем создать Docker образ при помощи следующей команды:

Команда docker build создает образ на основе Dockerfile в текущей директории, а опция -t задает тег для образа. В нашем случае тегом будет my-express-app.

Шаг 3: Запуск контейнера

Наконец, мы можем запустить контейнер из созданного ранее Docker образа.

3.1 Запуск контейнера

Выполните следующую команду, чтобы запустить контейнер:

Команда docker run запускает контейнер на основе указанного образа, а опция -p 3000:3000 пробрасывает порт 3000 из контейнера на хост машину.

Теперь вы можете открыть браузер и перейти по адресу http://localhost:3000, чтобы увидеть свое развернутое Express.js приложение!

Заключение

В этой статье мы рассмотрели, как развернуть Express.js приложение в Docker контейнере. Мы создали простое Express.js приложение, создали Dockerfile для описания настроек создания Docker образа, собрали Docker образ и запустили контейнер. Теперь ваше приложение можно легко развернуть на любой платформе, где установлен Docker.

Спасибо за внимание! Удачи в разработке!