Docker у проекті Laravel: перші кроки
Я адресую цю статтю розробникам, що працюють на 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 більше не є для вас бар’єром. Ще багато чого потрібно прочитати, але ви вже почали працювати.
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівБыло дело. Но сейчас предпочитаю DDEV. Больше свободы в конфигурации. CLI приятнее.
Я думаю, це все ж таки не для першого кроку в Докері
Та чего? Инициализация занимает минуту одной командой. В config.yaml версию php указал и вперед. А доп возможности можно и потом изучить. Тот же Sail, но по-человечески сделано. Ну это так, кому шо.
docs.ddev.com/...nstall/ddev-installation Тут не одна команда
Джун не осилит простейшую установку? Копипаст на 50 IQ. Инициализация в одну команду docs.ddev.com/en/stable/users/project
А вообще, странно видеть такие статьи в 2026 в эпоху ИИ.
ШІ не так сильно змінить галузь, як зараз видається. Протверезіння вже починається.
Не люблю цей пакет, адже він не підходить для продакшену. Там php artisan serve під капотом.
Зараз простіше AI агента попросити створити тобі dev та prod конфігурацію під твій проект.
Своєю статтею я хотів допомогти тим, хто не знає, як обертати проєкт у Docker для локальної розробки — зробити перший крок. Я не думаю, що хороша ідея просити про це ШІ — це добрий слуга, але поганий господар. За ним око та око потрібне.
А що робити на продакшені — це зовсім інша тема.