Докеризируйте свой проект Laravel в один миг

Докеризируйте свой проект Laravel в один миг

16 апреля 2022 г.

Как вы, возможно, знаете, Docker состоит из набора контейнеров, работающих независимо друг от друга. Это отлично, так как все члены команды могут работать над одними и теми же предметами. Docker может виртуализировать уровень ОС и собирать все необходимые пакеты. Когда мы говорим о Docker, мы говорим о запуске программы в контейнере с нашими пользовательскими настройками. Мы могли бы определить эти настройки в файле Dockerfile.


Каковы преимущества Docker?


Возможно, до этого вы использовали сервер Apache, что хорошо, но не подходит и не удобно. Докер хорош тем, что:


  • Все участники получают доступ к одним и тем же пакетам.

  • Любой может видеть последние изменения, сделанные другими.

  • Все настройки и версии одинаковые.

Итак, с этими преимуществами мы могли бы перейти к учебнику. Я предполагаю, что у вас установлен Docker в вашей системе Linux и вы знакомы с Laravel.


Установка Laravel


  • создайте каталог и назовите его как хотите.

  • откройте терминал или CMD в этом каталоге и введите composer create-project laravel/laravel example-app

  • Когда вы успешно установили Laravel, перейдите в папку Laravel, и вот ваша первая структура Laravel.


  • заходим в общую папку и вырезаем там все файлы.

  • вы должны перейти к корневому файлу вне папки Laravel.

  • вставьте их сюда следующим образом:


Мы сделали это, потому что хотели запустить Laravel без команды php artisan serve. Из корня мы должны установить основной маршрут к папке Laravel и иметь доступ ко всем им.


Докеризация Laravel


  • Теперь откройте файл index.php в корневом проекте и измените его, как показано ниже:


Поэтому мы изменили его и поместили «Laravel» (имя каталога нашего проекта) во все пути.


  • Просто создайте папку Dockerfile в корне (что означает корневой каталог вашего проекта), и все готово. Должно быть именно это имя с большой буквы Д.

  • Теперь введите эти коды в свой Dockerfile:

ИЗ php:7.4-apache


КОПИРОВАТЬ ./php.ini/etc/php/7.4/apache2/php.ini


ЗАПУСТИТЬ a2enmod переписать


РАБОЧИЙ КАТАЛОГ /var/www/html


ЗАПУСТИТЬ docker-php-ext-install mysqli



Имейте в виду, что вы можете установить версию PHP по своему усмотрению.


Кроме того, команда «RUN a2enmod rewrite» используется для доступа к подпапкам в вашей корневой системе Apache.


WORKDIR — это путь к вашей корневой системе Apache. В Windows это C:\HTTPD\Apache24\htdocs, тогда как в Linux это /var/www/html.


  • В корне создайте файл php.ini и оставьте его пустым.

Пришло время докеризовать наш проект Laravel.


  • В корневом каталоге, где находится Dockerfile, откройте терминал и введите docker build -t laravel:01.

docker build используется для создания нового образа в Docker. -t означает имя тега, которому вы можете присвоить любое имя, а точка . означает все ваши текущие каталоги и подкаталоги вашего проекта.



  • Теперь вы можете проверить с помощью команды docker images, был ли образ создан или нет.


Настала очередь контейнера. Как вы, возможно, знаете, контейнер — это образ Docker для хранения и выполнения нескольких пакетов в Docker. Как следствие, мы должны спроектировать наш контейнер, чтобы он работал. Итак, введите эту команду:


docker run -d -p 84:80 -name apachelaravel -v "$PWD":/var/www/html laravel:01



«запуск докера» очевиден; это подразумевает строительство и эксплуатацию контейнера. -p указывает на установку порта 84 на истинный порт 80 нашей системы Apache.


Вы можете проверить, запущен ли ваш контейнер, введя эту команду docker container ls -a



Теперь в вашем браузере просто введите http://localhost:84


Если вы видите такую ​​ошибку:


Не удалось получить доступ к потоку или файлу "/var/www/html/laravel/storage/logs/laravel.log" в режиме добавления: невозможно открыть поток: Отказано в доступе Исключение при попытке записи в журнал



Не волнуйтесь, вы можете решить это просто. Просто перейдите в каталог Laravel, откройте терминал и введите эти три команды одну за другой:


chmod -R gu+w хранилище


chmod -R guo+w хранилище


кеш php-мастера: очистить



Эти инструкции позволяют серверу Apache получить доступ к каталогу хранилища в Laravel.


И вот вы здесь. Просто перезагрузите страницу, и вы увидите, что Laravel успешно работает.




Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE