Привет, друзья! Сегодня я хочу поговорить с вами о том, как развернуть приложение, созданное с использованием 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
Откройте терминал и перейдите в папку, где хотите создать приложение. Затем выполните следующую команду:
1 |
$ npm install express |
Это установит Express.js в ваш проект.
1.2 Создание основного кода сервера
Откройте редактор кода и создайте файл server.js. Вставьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// импортируем необходимые модули const express = require('express'); // создаем экземпляр приложения Express.js const app = express(); // добавляем маршрут "/" app.get('/', (req, res) => { res.send('Привет, мир!'); }); // запускаем сервер app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); }); |
Теперь Express.js приложение готово к развертыванию!
Шаг 2: Создание Dockerfile
Далее создадим файл Dockerfile, который описывает настройки для создания Docker образа на основе нашего приложения.
2.1 Создание Dockerfile
Создайте файл Dockerfile в корневой папке проекта. Вставьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# создаем образ на основе Node.js FROM node # устанавливаем рабочую директорию WORKDIR /app # копируем package.json и package-lock.json COPY package*.json ./ # устанавливаем зависимости RUN npm install # копируем остальные файлы проекта COPY . . # открываем порт 3000 EXPOSE 3000 # запускаем сервер Express.js CMD ["node", "server.js"] |
Этот файл определяет, что мы хотим создать образ на основе 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 образ при помощи следующей команды:
1 |
$ docker build -t my-express-app . |
Команда docker build
создает образ на основе Dockerfile в текущей директории, а опция -t
задает тег для образа. В нашем случае тегом будет my-express-app.
Шаг 3: Запуск контейнера
Наконец, мы можем запустить контейнер из созданного ранее Docker образа.
3.1 Запуск контейнера
Выполните следующую команду, чтобы запустить контейнер:
1 |
$ docker run -p 3000:3000 my-express-app |
Команда docker run
запускает контейнер на основе указанного образа, а опция -p 3000:3000
пробрасывает порт 3000 из контейнера на хост машину.
Теперь вы можете открыть браузер и перейти по адресу http://localhost:3000, чтобы увидеть свое развернутое Express.js приложение!
Заключение
В этой статье мы рассмотрели, как развернуть Express.js приложение в Docker контейнере. Мы создали простое Express.js приложение, создали Dockerfile для описания настроек создания Docker образа, собрали Docker образ и запустили контейнер. Теперь ваше приложение можно легко развернуть на любой платформе, где установлен Docker.
Спасибо за внимание! Удачи в разработке!