AS-Programmer Laravel и среда исполнения на Docker
  • Telegram
  • Facebook
  • WhatsApp
  • Viber
  • Skype

Вводная часть

Постановка задачи и создание структуры

Автоматизировать развертывание среды исполнения для Laravel приложений с помощью Docker.
Генерировать локально-доверенные сертификаты с собственным центром сертификации для локальных доменов, определенных в файле /etc/hosts с помощью утилиты Mkcert.
Получать бесплатные сертификаты от Let's Encrypt для реальных доменов на VPS c помощью утилиты certbot
На локальном компьютере и на VPS реализовать Nginx Reverse Proxy для проверки сертификатов и транслирования запросов на соответствующие приложения позади него.
Это обеспечит идентичность локальной среды разработки и VPS и позволит на одном VPS разместить несколько приложений, а на локальном компьютере обращаться к приложению через браузер по локальному доменному имени, примерно так http://site-1.local

Прежде чем приступить к решению задачи, определим требования к локальному компьютеру или VPS. Все описанное ниже было протестировано на OS Linux (Ubuntu 18), на других ОS возможны нюансы, в частности, связанные с различием в структуре файловых систем. Это необходимо учитывать при создании volume между Docker контейнерами и OS.

На компьютере или VPS должны быть

  • OS Linux
  • Docker версия 19.03.0 +
  • Docker Compose версия 1.25.0 +
  • Система управления версиями Git
  • Утилита Mkcert - только для локального компьютера!!!

Функциональная схема

Файловая структура

Так выглядит файловая структура в общем случае. Конкретно для локального сервера и для VPS будут свои подробности внутри папок о которых поговорим отдельно в соответствующих разделах

  • Все проекты собраны в папке my-projects
  • Файлы для запуска контейнера reverse proxy собраны в папке docker-reverse-proxy
  • Каждый проект лежит в отдельной папке project-1,2,3
  • В каждом проекте есть своя папка с файлами для запуска контейнеров обеспечивающих создание среды исполнения конкретного приложения Laravel laravel-docker -1,2,3
  • В каждом проекте есть своя папка с кодом конкретного приложения Laravel laravel-app-1,2,3

Подготовьте эту файловую структуру у себя на локальном компьютере или VPS, чтобы в дальнейшем заполнить ее соответствующим содержанием. Но прямо сейчас сделаем заглушки, вместо реальных Laravel приложений, чтобы иметь возможность сразу проверить работу Docker контейнеров.
cd ~/my-projects/project-1/laravel-app-1
mkdir public
nano public/index.html
вставим в index.html строку
<h1>Hello, laravel-app-1</h1>
повторить для laravel-app-2 и laravel-app-3

Порядок развертывания

№ Local VPS
1. Laravel приложение локально Laravel приложение на VPS
2. Reverse proxy локально Reverse proxy на VPS

Меню

  • Вводная часть
  • Laravel на Docker
  • Reverse Proxy

Get in touch

  • acwstudio2018@gmail.com
  • +7(921) 439-9531
  • Russia, Saint-Petersburg

© Untitled. All rights reserved. Demo Images: Unsplash. Design: HTML5 UP.