Для локального развёртывания проекта используется
Laravel Sail, поэтому рекомендуется
прочитать его документацию и sail --help
, где описаны команды, которые
отсутствуют в документации. Так как скрипт sail определяет свои переменные
среды, которые необходимы для сборки образов и запуска контейнера, все
действия рекомендуется совершать через него, а не docker compose.
Для первоначально установки зависимостей (когда ещё нет vendor) используется следующая команда:
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php84-composer:latest \
composer install --ignore-platform-reqs
После этого для работы с composer можно будет использовать команды sail.
После выполнения выше описанных действий, с проектом можно будет взаимодействовать как описано в документации Laravel Sail.
При запуске проекта, docker может выдать следующую ошибку:
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:9000 -> 0.0.0.0:0: listen tcp 0.0.0.0:9000: bind: address already in use
Это происходит, когда порт, который используется для доступа к сервису, уже
занят другим процессом. Чтобы поправить её, можно указать свой порт для доступа
к сервису. Это делается через переменные среды, *_PORT
, которые можно
найти в docker-compose.yml, и указать свои значения в файле .env.
Помимо этого, можно найти, какая программа занимает нужный порт, и отключить её или поменять её порт. Это делается следующей командой:
sudo lsof -P -i TCP@0.0.0.0:9000
Где TCP
, 0.0.0.0
и 9000
берутся из сообщения об ошибки, указанного выше.
Одна из программ, которая может часто занимать нужный порт, это PHPStorm.
Он слушает на порту 9000 для подключения отладки через xdebug. Так как
xdebug поменял порт по умолчанию, и теперь использует 9003, порт в PHPStorm
можно поменять. Сделать это можно в настройках PHP -> Debug -> Debug port
.
Для форматирования кода используется Laravel Pint, рекомендуется прочитать его документацию и ознакомиться со списком аргументов и флагов.
Форматирование кода обязательно нужно выполнять перед коммитом, т.к. в CI
настроена проверка (команда sail composer format
), которая не
позволяет задеплоить код, который отформатирован не по стандарту.
Для удобства использования, в PHPStorm можно настроить Inspection, чтобы он подсвечивал проблемы оформления, и выполнял форматирование при помощи Laravel Pint. Как это делается можно узнать в документации.
Для проверки качества кода используется Larastan, рекомендуется прочитать его документацию и ознакомиться со списком аргументов и флагов.
Проверка качества кода обязательно нужно выполнять перед коммитом, т.к. в CI
настроена проверка (команда sail composer lint
), которая не
позволяет задеплоить код, который не соответствует стандарту.