Как запустить Laravel в Docker за 5 минут на чистом VPS Ubuntu Server
В этой заметке я поделюсь моим roadmap, как быстро поднять проект на Laravel на VPS с нуля, не ковыряясь в настройках nginx, php-fpm и баз.
Вот пошаговая инструкция, как это сделать с помощью Docker — просто, понятно и работает всегда.
Шаг 1. Ставим Docker и Docker Compose
Залетаем на чистый VPS с Ubuntu (например, 22.04 LTS):
ssh user@your-server-ip
Обновляем систему:
sudo apt update && sudo apt upgrade -y
Ставим пакеты для работы с Docker:
sudo apt install -y ca-certificates curl gnupg lsb-release
Добавляем Docker GPG-ключ:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Добавляем репозиторий Docker:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Устанавливаем Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Проверяем что всё ок:
docker --version
docker compose version
Шаг 2. Клонируем проект или создаём новый Laravel
Если у тебя уже есть проект:
git clone https://github.com/your-project.git
cd your-project
Если хочешь создать с нуля:
mkdir my-laravel-app && cd my-laravel-app
Кидаем в корень docker-compose.yml
, Dockerfile
, nginx/conf.d/default.conf
— как я показывал выше.
Шаг 3. Генерируем Laravel проект (если новый)
Добавим Composer в docker-compose.yml
:
composer:
image: composer:latest
container_name: composer
volumes:
- ./app:/app
working_dir: /app
Запускаем создание проекта:
docker compose run --rm composer create-project laravel/laravel .
Шаг 4. Запускаем Laravel в Docker
Собираем и поднимаем всё:
docker compose up -d --build
Через пару секунд Laravel будет доступен по IP сервера (или домену) на порту 80.
Шаг 5. Подключаем базу
В .env
Laravel указываем параметры PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravelpassword
Чтобы применить — рестартим:
docker compose restart app
Полезные команды
Посмотреть логи:
docker compose logs -f
Перезапустить всё:
docker compose restart
Остановить:
docker compose down
Готово! Laravel в Docker
Теперь ты можешь быстро запускать Laravel на любом VPS всего за 5 минут.
Можно легко обновлять PHP, менять версию PostgreSQL, деплоить новые версии проекта.