Dockerизація твого Node.js додатку: Посібник для початківців

текст перекладу

pic

Вступ

Привіт! Отже, ти готовий підняти свій 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

Leave a Reply

Your email address will not be published. Required fields are marked *