Для того чтобы проект на Laravel + Vue.js монтировался в Docker, вам понадобится создать Docker-контейнер, включая нужные зависимости и настроить монтирование файлов.
Вот пошаговая инструкция, как это можно сделать:
Шаг 1: Создайте Dockerfile
Создайте файл с именем "Dockerfile" в корневой директории вашего проекта. Для начала, вы можете использовать базовый образ с PHP и Nginx, например:
FROM php:7.4-fpm RUN apt-get update && apt-get install -y curl git unzip libzip-dev libpng-dev libonig-dev libxml2-dev zip nano nginx # Установка Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Переносим конфигурацию PHP COPY ./docker/php.ini /usr/local/etc/php/conf.d/docker-php.ini # Установка расширений PHP RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip # Создание рабочей директории WORKDIR /var/www/html # Копирование файлов проекта COPY . /var/www/html # Устанавливаем зависимости Laravel RUN composer install --no-dev --optimize-autoloader # Генерируем ключ приложения Laravel RUN php artisan key:generate # Настройка прав доступа RUN chown -R www-data:www-data /var/www/html && chmod -R 775 /var/www/html/storage # Копируем файл настроек nginx COPY ./docker/default.conf /etc/nginx/sites-available/default EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Вышеуказанный Dockerfile устанавливает необходимые зависимости, копирует необходимые файлы проекта, устанавливает зависимости Laravel, генерирует ключ приложения, настраивает права доступа и запускает Nginx для обслуживания приложения.
Шаг 2: Создайте файл default.conf
Создайте файл с именем "default.conf" в папке "docker", которая находится в корневой директории проекта. Файл конфигурации Nginx выглядит следующим образом:
server { listen 80; server_name localhost; root /var/www/html/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass php-fpm:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Этот конфигурационный файл настраивает Nginx на обслуживание файлов из папки "public" в корневой директории вашего проекта и на отправку запросов PHP-скриптам в контейнере PHP-FPM.
Шаг 3: Запустите контейнер
Откройте терминал и перейдите в корневую директорию вашего проекта. Затем выполните следующую команду для сборки и запуска Docker-контейнера:
docker build -t my-laravel-vue-app . docker run -d -p 8080:80 --name my-laravel-vue-app -v $(pwd):/var/www/html my-laravel-vue-app
Команда "docker build" создает Docker-образ на основе файла Dockerfile, а команда "docker run" запускает контейнер, пробрасывая порт 8080 на хостовую машину и монтируя текущую директорию в контейнер.
Теперь ваш проект на Laravel + Vue.js должен быть доступен по адресу http://localhost:8080.
Это полное решение для запуска проекта на Laravel + Vue.js внутри Docker-контейнера с монтированием файлов.