Использование Docker с Laravel может значительно упростить процесс разработки, тестирования и развертывания ваших приложений, обеспечивая консистентность между различными средами разработки и производства. В этом руководстве мы рассмотрим, как настроить и использовать Docker для разработки и развертывания Laravel-приложений.
Шаг 1: Установка Docker
Перед началом убедитесь, что у вас установлен Docker. Если нет, скачайте и установите его с официального сайта Docker.
Шаг 2: Создание Dockerfile
Создайте файл Dockerfile
в корне вашего Laravel-проекта. Этот файл определяет, как будет собираться ваш Docker-образ.
FROM php:7.4-fpm
# Установка зависимостей
RUN apt-get update && apt-get install -y \
build-essential \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
locales \
zip \
jpegoptim optipng pngquant gifsicle \
vim \
unzip \
git \
curl
# Установка расширений PHP
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-jpeg-dir=/usr/include/ --with-freetype-dir=/usr/include/
RUN docker-php-ext-install gd
# Установка Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Установка Node.js и npm
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs
# Установка Xdebug (опционально)
RUN pecl install xdebug && docker-php-ext-enable xdebug
# Настройка рабочего каталога
WORKDIR /var/www
# Копирование файлов проекта
COPY . /var/www
# Установка зависимостей проекта
RUN composer install
# Копирование файла .env и генерация ключа приложения
COPY .env.example .env
RUN php artisan key:generate
# Настройка прав доступа
RUN chown -R www-data:www-data /var/www
# Запуск сервера
CMD ["php-fpm"]
Шаг 3: Создание файла docker-compose.yml
Создайте файл docker-compose.yml
в корне вашего проекта для определения и запуска вашего приложения и связанных с ним сервисов (например, базы данных).
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- app-network
db:
image: mysql:5.7
container_name: mysql_db
restart: unless-stopped
tty: true
ports:
- "4306:3306"
environment:
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: root
SERVICE_TAGS: dev
SERVICE_NAME: mysql
networks:
- app-network
networks:
app-network:
driver: bridge
Шаг 4: Сборка и запуск контейнеров
В терминале перейдите в каталог вашего проекта и выполните следующую команду для сборки и запуска контейнеров:
docker-compose up -d
Эта команда соберет Docker-образы для вашего приложения и базы данных, а затем запустит их в фоновом режиме.
Шаг 5: Настройка Laravel для работы с Docker
Откройте файл .env
вашего Laravel-проекта и обновите настройки базы данных, чтобы они соответствовали конфигурации вашего Docker-контейнера:
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root
Шаг 6: Использование Laravel с Docker
Теперь вы можете использовать Laravel как обычно, выполняя команды Artisan, миграции базы данных и т.д., внутри вашего Docker-контейнера.
Заключение
Использование Docker с Laravel может значительно упростить процесс разработки и развертывания, обеспечивая консистентность между различными средами. Это руководство дает базовое представление о том, как настроить и использовать Docker для Laravel-приложений. Вы можете расширить его, добавив дополнительные сервисы, такие как Redis, Elasticsearch и другие, в зависимости от потребностей вашего проекта.
0 комментариев