текст перекладу
Вступ
Привіт! Отже, ти готовий підняти свій Node.js додаток на новий рівень за допомогою Docker? Чудово! Ти, мабуть, чув про те, як Docker спрощує розробку та розгортання, і тобі цікаво дізнатися, в чому весь цей ажіотаж.
Можливо, ти втомився від проклятого синдрому "на моїй машині все працює". Що ж, ти потрапив до потрібного місця!
Я припускаю, що ти вже маєш базове розуміння Node.js та Docker (якщо ні — не хвилюйся, цей посібник буде простим). Наприкінці цього гайду ти зможеш запускати свій додаток в контейнері Docker, як професіонал. Давайте зануримося!
1. Чому Docker для твого Node.js додатку?
Перш за все, чому варто використовувати Docker? Ось в чому справа:
- Послідовність: Прощавай "працює на моєму ноутбуці, вибухає на сервері". Docker гарантує, що твій додаток працюватиме однаково скрізь.
- Портативність: Твій додаток стає справжнім мандрівником. Запусти його на своїй машині, розгорни в хмарі, навіть поділись з другом — він працюватиме бездоганно.
- Спрощене розгортання: Запакуй увесь свій додаток (код, залежності та все інше) в акуратний контейнер. Розгортання стає простим, без головного болю.
Node.js є легким і відмінно справляється з асинхронними задачами, що робить його ідеальним партнером для Docker.
2. Створимо простий Node.js додаток
Перед тим, як занурюватися в Docker, давай створимо базовий Node.js додаток:
Крок 1: Створення директорії проекту
mkdir dockerized-node-app && cd dockerized-node-app
Крок 2: Ініціалізація проекту
npm init -y
Крок 3: Встановлення Express
npm install express
Крок 4: Створення index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello from my Dockerized Node.js app!');
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server listening on port ${PORT}`);
});
Крок 5: Оновлення package.json
Додай скрипт для запуску додатку:
"scripts": {
"start": "node index.js"
}
Тепер у тебе є простий Node.js додаток, готовий до Docker! 🎉
3. Dockerfile: Твій план контейнера
Тепер давай створимо Dockerfile в кореневій директорії проекту. Цей файл скаже Docker, як запакувати твій додаток у контейнер.
# Використовуємо офіційний образ Node.js як базу
FROM node:16
# Встановлюємо робочу директорію всередині контейнера
WORKDIR /app
# Копіюємо package.json і встановлюємо залежності
COPY package*.json ./
RUN npm install
# Копіюємо решту коду додатка
COPY . .
# Відкриваємо порт, на якому буде працювати твій додаток
EXPOSE 3000
# Команда для запуску додатку
CMD ["npm", "start"]
Кожен рядок у Dockerfile має свою конкретну мету — від налаштування середовища виконання до визначення того, як додаток має працювати всередині контейнера.
4. Оптимізація з .dockerignore
Щоб не включати зайві файли в Docker-образ (і для прискорення побудови), створи файл .dockerignore
в директорії проекту:
node_modules
npm-debug.log
Це забезпечить ігнорування важких node_modules
та логів відладки.
5. Створення та запуск Docker-образу
Ось де відбувається магія — створення та запуск додатка в Docker:
Крок 1: Створення Docker-образу
docker build -t dockerized-node-app .
Прапор -t
позначає твій образ ім'ям (dockerized-node-app
).
Крок 2: Запуск Docker-контейнера
docker run -p 3000:3000 dockerized-node-app
Прапор -p
відображає порт 3000
твоєї хост-машини на порт 3000
контейнера.
Тепер відкрий браузер і перейдіть за посиланням http://localhost:3000. 🎉 Твій додаток працює в Docker-контейнері!
6.
текст перекладу
Режим розробки з томами
Для зручнішого процесу розробки використовуйте томи (volumes), щоб зміни у твоєму коді відображалися всередині контейнера без необхідності перезбирати образ щоразу.
docker run -p 3000:3000 -v $(pwd):/app dockerized-node-app
Прапор -v
монтує твою локальну директорію ($(pwd)
) в директорію контейнера /app
.
7. Спрощення з Docker Compose
Управляєш кількома контейнерами? Docker Compose спрощує цей процес.
Крок 1: Створення docker-compose.yml
version: "3.9"
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
Крок 2: Запуск за допомогою однієї команди
docker-compose up
8. Розгортання твого Docker-додатку
Готовий вийти в онлайн? Ось як завантажити твій образ в Docker реєстр і розгорнути його:
Крок 1: Тегуй свій образ
docker tag my-node-app /my-node-app
Крок 2: Завантаж його в Docker Hub
docker push /my-node-app
Тепер ти можеш розгорнути його на таких платформах, як AWS ECS, Kubernetes або Heroku.
8. Розгортання твого Docker-додатку
Готовий вийти в онлайн? Ось як завантажити твій образ в Docker реєстр і розгорнути його:
Крок 1: Тегуй свій образ
docker tag my-node-app /dockerized-node-app
Крок 2: Завантаж його в Docker Hub
docker push /my-node-app
Тепер ти можеш розгорнути його на таких платформах, як AWS ECS, Kubernetes або Heroku.
Вітаємо! Ти успішно Dockerизував свій Node.js додаток. 🚀 Docker знімає всі труднощі з розгортання, полегшуючи твоє життя як розробника.
Тепер твій черга — досліджувати Docker далі. Експериментуй, створюй і розгортай! Якщо у тебе є питання чи думки, залиш їх у коментарях нижче. Удачі в кодингу!
Перекладено з: Dockerizing Your Node.js App: A Beginner’s Guide