ООО "Солнечный Ветер" Ларионов Андрей Николаевич
Создатель проекта: ООО "Солнечный Ветер" Ларионов Андрей Николаевич
Разворачивание веб-сервера и установки laravel на Docker

Разворачивание веб-сервера и установки laravel на Docker


Автор: admin Дата: 2025-04-03 13:05:45

Перед тем, как начать работать с докер, естественно нужно установить сам Docker. В этой статье не будет рассказываться о том, как скачивать и устанавливать данное ПО. За образец возьмем операционку Windows 11. На ней создадим каталог d:\domains\docker-laravel. В нем-то мы и будем разворачивать свою рабочую систему проекта.

1. Шаг первый - создать в корне вышеупомянутой папки файл docker-compose.yaml.

В данный файл запишем следующие инструкции, все необходимые для работы с веб-сервером и ларавел проектом.

	version: "3.8"

services:
  nginx:
    image: "nginx:stable-alpine"
    ports:
      - "9000:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - ./src:/var/www/laravel
    depends_on:
      - mysql
      - php
  php:
    build:
      context: dockerfiles
      dockerfile: php.Dockerfile
    volumes:
      - ./src:/var/www/laravel
  mysql:
    image: mysql:8.0
    ports:
      - "9316:3306"
    env_file:
      - env/mysql.env
    volumes:
      - db_data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - "9080:80"
    environment:
      PMA_HOST: mysql
      PMA_USER: laravel
      PMA_PASSWORD: password
    depends_on:
      - mysql

  composer:
    build:
      context: dockerfiles
      dockerfile: composer.Dockerfile
    volumes:
      - db_data:/var/www/laravel
  artisan:
    build:
      context: dockerfiles
      dockerfile: php.Dockerfile
    volumes:
      - ./src:/var/www/laravel
    entrypoint: ["php", "/var/www/laravel/artisan"]

volumes:
  db_data:

Здесь мы развернули веб-сервер nginx, а также субд mysql + образ phpmyadmin + и php 8.2. 

2. Шаг второй: создать все файлы и папки указанные в этом файле инструкций.

Для этого создадим в папке docker-laravel следующие папки 

Каталог dockerfiles и в нем два файла, которые мы прописали в инструкциях:

Файл composer.Dockerfile и файл php.Dockerfile

Создадим каталог для самого ларавела - папка с названием src. Там мы должны через composer проинсталлировать наш ларавел проект.

Выполняем команду в консоли из корня проекта:

composer create-project laravel/laravel src

Еще нужно создать папку env для вложенного файла настроек mysql.env

А также создаем каталог nginx и вложенный в него конфиг nginx.conf

3. Шаг третий заполним вышеупомнянутые файлы соответствующей информацией:

Файл composer.Docfile:

FROM composer:latest

WORKDIR /var/www/laravel

ENTRYPOINT ["composer", "--ignore-platform-reqs"]


Файл php.Dockerfile

FROM php:8.2-fpm-alpine

WORKDIR /var/www/laravel

RUN docker-php-ext-install pdo pdo_mysql

Файл nginx.conf

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/laravel/public;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

mysql.env

MYSQL_DATABASE=laravel_db
MYSQL_USER=laravel
MYSQL_PASSWORD=password
MYSQL_ROOT_PASSWORD=password

4. Шаг четвертый. Для ларавел в файле .env пишем настройки бд:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=password

В итоге должен получиться вот такой проект:

5. Шаг пятый. Запускаем в консоли команду:

docker-compose up -d
docker-compose up -d
После чего открываем оболочку докера, либо просто убеждаемся что по данным портам работают ссылки:
 
Для проекта ларавел, это адрес: http://localhost:9000/
 
Для phpmyadmin, это адрес: http://localhost:9080/phpmyadmin/index.php
 
Контейнер в программе должен выглядеть следующим образом:
 
 
6. Шаг шестой. Если все работает как надо, то выполняем в консоли команду:
 
docker-compose exec php php artisan migrate
После чего убеждаемся, что в оболочке phpmyadmin отражается база laravel_db и в ней осуществлены миграции. Если все работает отлично, то можно смело работать с нашим развернутым проектом ларавела в папке src.
 
 
Если вы считаете текст данного блога оскорбительным или некорректным, напишите об этом по адресу IntegralAL@mail.ru с URL-адресом блога. В теме письма пишите <Жалоба>, либо <Неккоректно>.

Теги блога:

Web-программирование
Docker
Laravel
Назад к блогам