чорнетка докер

спочатку потрібно встановити докер на комп і залогінитись:

https://www.docker.com/products/docker-desktop/

---

Офіційні образи докерхаб із нодою. різних версій https://hub.docker.com/_/node/

Краще всього встановлювати версії alpine

папку нод модулів навіть не обовʼязково встановлювати. можна видалити папку

зайемо в папек frontend і ініціаліщуємо проект

npm init -y

встановимо лайв сервер

npm i live-server

і пропишемо в пекедж джсон наш скрипт

"start": "live-server index.html"

тепер видалимо папку нод модулів. і створимо файл Dockerfile

Тепер підйом цього проєкту будемо робити в цьому файлі

Dockerfile
FROM node:18-alpine

COPY ./ ./
RUN npm install

CMD ["npm", "start"]

У першому рядку ми вказуємо яка версія образа докера буде вантажитися з серврера докера

копі вказує що і куди копібємо через пробіл. тобто все з папки нашого проекту в образ докера

далі вказується, зо потрібно проінсталювати пакети

і запустити скрипт з командного рядка

Розберемо команди докера.

image - це шаблон. а вже з нього ми можемо запускати контейнери

Команди докера:

переглянути образи, які є в системі:

видалити образ

Щоб створити контейнер, то пишемо таку команду в терміналі у папці проекту

Якщо вказати ключ і назву то надастся назва репозиторію frontend

Тобто таким чином ми створили шаблон. а тепер можна створити контейнер

після цього в консолі повернеться айдішник:

Щоб перевірити які контейнери запущені

а щоб побачити навіть незапущені контейнери треба додати клоюч

або

Запустити контейнер можна командою (де 03f - початок айдішники нашого контейнера)

тепер запуск команди docker ps вкаже, що контейнер запущено

Щоб зупинити роботу конейнера є дві команди (stop - охайно зупиняє процес, kill - просто рубить процес)

видалити контейнер можна за допомогою команди rm

команда run одразу і створює контейнер і його запускає і в цій команді також можна прописати порти на яких проект буде спілкуватися з зовнішнім світом (перший порт той, до якого будемо звертатися, а другий порт - той що всередині контейнера)

або

І тепер якщо в браузері відкрити це посилання, то нам відкриється фронтенд

http://127.0.0.1:4000/

а якшо в терміналі ввести docker ps, т покажеться розширена інформація про контейнер (він запущений) його можна kill.

І щнову запустити docker start 52a і перевілити docker ps

також можна зайти в середину нашого контейнера І запустити якусь команду з термінала. Наприклад можемо зайти в командний рядок такою командою. Де it - значить інтерактинве, exec - екзекютів а sh - запуск командного рядка

після цього ми потрапимо в уніксівський термінал і наприклад командою ls можемо передивитися вміст кореневого каталогу проекту (контейнера). Але зазвичай проект ставлять не в корінь, а в папку home наприклад, щоб не будо конфліктів з назвами.

Як цього уникнути розглянемо у побудові докера для бекенду

ПРОПИШЕМО ДОКЕР ФАЙЛИ ДЛЯ БЕКЕНДУ

Створимо Dockerfile

Видаляємо папку node_modules

Щоб вказати конкретну роботу папку вкажемо параметр WORKDIR ітепер при вказанні копіювання буде копіюватися саме в неї. після установки пакетів знову копіюємо всі файли в робочу директорію і запускаємо скрипт.

Примітка файди .env також мають бути присутні у проекті тому зо вони теж скопіюються.

Після цього збирають проєкт такими ж командами як і для фронтенду

Бужуємо образ

тепер після встановлення образа ноди створимо і запустимо контейнер

Last updated