Docker у проекті Laravel: перші кроки

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Я адресую цю статтю розробникам, що працюють на Laravel, які, прочитавши посібники з Docker, впали у тихий відчай. А вимога Docker у тестовому завданні робить їх безпорадними.

Після прочитання цієї статті ви зможете розпочати роботу та обертати свої проєкти в Docker. Вперед!

Перше, що ми зробимо перед усіма установками — це відредагуємо початок файлу .env : скоригуємо URL додатку та порт:

APP_URL=http://localhost:8080
APP_PORT=8080

Щоб обгорнути ваш проєкт у Docker на Laravel, вам потрібно:

  • створити файл «compose.yaml»,
  • виконати команду збірки контейнера на основі цього файлу,
  • запустити ці контейнери для початку,
  • виконувати деякі команди Artisan з контейнерів.

Як створити compose.yaml? Його може створити пакет Sail (laravel.com/framework/docs/sail), який входить до екосистеми Laravel.

Laravel Sail — це легкий інтерфейс командного рядка для взаємодії зі стандартним середовищем розробки Laravel Docker. Sail забезпечує чудову відправну точку для створення застосунків Laravel за допомогою PHP, MySQL та Redis без необхідності попереднього досвіду роботи з Docker.
(Документація)

Встановіть його:

composer require laravel/sail --dev

і створіть файл compose.yaml:

php artisan sail:install

Ця команда запитує, які контейнери ви хочете створити:

Оберіть один або кілька варіантів. Сподіваюся, вам не потрібно нічого екзотичного.

Після закінчення інсталяції зберіть контейнери:

./vendor/bin/sail build --no-cache

Це потребує певного часу. Тобі доведеться почекати. Зберігай спокій.

Після цього запустіть контейнери:

./vendor/bin/sail up

Проєкт працює в середовищі Docker. Bingo! Ви можете запустити свій додаток на адресу localhost:8080

Зупинка контейнерів:

./vendor/bin/sail down

Тепер на початку локальної роботи з проєктом Ви запускаєте контейнери, після закінчення роботи зупиняєте.

І тепер вам доведеться виконувати деякі команди інакше, ніж ви звикли:

php artisan ...

Ви повинні використовувати:

./vendor/bin/sail artisan...

Наприклад:

./vendor/bin/sail artisan migrate

А чи можуть виконуватися «нативні» команди Docker?

Так!

Якщо встановлено Docker Compose, Вам не потрібно будувати контейнери знову (ви їх побудували командою ./vendor/bin/sail build —no-cache). Ви можете виконувати, зокрема, такі команди:

Старт контейнерів:

docker-compose up -d

Зупинка контейнерів:

docker-compose stop

Якщо у вас встановлено Docker Engine, Ви можете виконувати команди для окремих контейнерів. Наприклад, отримати їх список:

docker ps

Ну ось, Docker більше не є для вас бар’єром. Ще багато чого потрібно прочитати, але ви вже почали працювати.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Было дело. Но сейчас предпочитаю DDEV. Больше свободы в конфигурации. CLI приятнее.

Я думаю, це все ж таки не для першого кроку в Докері

Та чего? Инициализация занимает минуту одной командой. В config.yaml версию php указал и вперед. А доп возможности можно и потом изучить. Тот же Sail, но по-человечески сделано. Ну это так, кому шо.

Джун не осилит простейшую установку? Копипаст на 50 IQ. Инициализация в одну команду docs.ddev.com/en/stable/users/project

А вообще, странно видеть такие статьи в 2026 в эпоху ИИ.

ШІ не так сильно змінить галузь, як зараз видається. Протверезіння вже починається.

Не люблю цей пакет, адже він не підходить для продакшену. Там php artisan serve під капотом.
Зараз простіше AI агента попросити створити тобі dev та prod конфігурацію під твій проект.

Своєю статтею я хотів допомогти тим, хто не знає, як обертати проєкт у Docker для локальної розробки — зробити перший крок. Я не думаю, що хороша ідея просити про це ШІ — це добрий слуга, але поганий господар. За ним око та око потрібне.

А що робити на продакшені — це зовсім інша тема.

Підписатись на коментарі