Вебинар 31.01.2022
Орг. вопросы
Про создание рабочих веток в git: пример создания своей ветки:
Не советует ставить/использовать OpenServer (т.к. здесь своя среда, отличная от продакшн)
Блог преподавателя
-
Можно ставим виртуалку по его гайду:
https://devenergy.ru/archives/306
-
+1 инструкция по установке от преподавателя:
https://www.youtube.com/watch?v=cGBggTdDmKI
Нужно: поднять Виртуалку и Докер (как д/з к вебирару), детали ниже (раздел д/з)
Заметки из вебинара
Запускаем команды в Докере
Команды для запуска:
# list of available containsers: docker images # list of working NOW containers: docker ps # run container: docker run -d -p 80:80 <image_name> # check: open on browser: http://mysite.local/
Оркестрация через docker-compose
Пример:
В нашем случае: запускаем 3 контейнера: Nginx, php-fpm, Mysql + console (бонусом)
нет смысла делать все в одном контейнере….
Осн. принцип: 1 процесс = 1 контейнер (т.е. если что-то ляжет, меняем/рестартим только его);
Запуск контейнеров
В Phpstorm кликаем правой кнопкой по docker-compose.yml и выбираем Run:
Для дебага — ставим Xdebug и в конфигах указываем, когда его запускать (на дев-площадке) + дебажить через логи также полезно
Для докер-проекта: коммитим следующее в гит:
Домашнее задание
Собрать 2 рабочих окружения — на Homestead & Docker
-
Для виртуалки: прислать скриншот рабочей виртуалки и файл homestead.yml
-
Для докера: docker.yml (чтобы можно было запустить docker-app)
Полезные ссылки
-
PhpStorm — как подключиться к GitHub: https://ploshadka.net/phpstorm-github/
-
Интеграция VSCode с GitHub https://channel9.msdn.com/Series/Visual-Studio-Code—-Mac/code6
-
Роберт Мартин — Чистый код https://www.ozon.ru/context/detail/id/142429922/
-
Мануалы по виртуалкам (txt):
-
https://cloud.yandex.ru/docs/solutions/web/lamp-lemp — мануал от Яндекса, можно начинать со 2 шага
-
Git — Book https://git-scm.com/book/ru/v2
-
Шпаргалка по git-flow : https://danielkummer.github.io/git-flow-cheatsheet/index.ru_RU.html
-
Список литературы (ниже)
-
Laravel Homestead — Laravel — The PHP Framework For Web Artisans https://laravel.com/docs/8.x/homestead
-
Downloads | Vagrant by HashiCorp https://www.vagrantup.com/downloads
-
Downloads – Oracle VM VirtualBox https://www.virtualbox.org/wiki/Downloads
В закрытом доступе:
-
Запись вебинара (mp4)
-
Презентация (pptx)
-
Контейнер — исходники
-
Среда — исходники
Список рекомендованной по курсу литературы
-
PHP Standards Recommendations [Электронный ресурс] /. — Электрон. журн. — Режим доступа: https://www.php-fig.org/psr/, свободный
-
Бейтс Б. , Сиерра К., Робсон Э., Фримен Э. Head First. Паттерны проектирования. Обновленное юбилейное издание. – Питер, 2018.
-
Бек Кент, Брант Джон, Фаулер Мартин. Рефакторинг. Улучшение проекта существующего кода /Бек Кент, Брант Джон, Фаулер Мартин; пер. Красиков И. В. — Диалектика, 2017. — 448с.
-
Вайсфельд Мэтт. Объектно-ориентированное мышление /Вайсфельд Мэтт; пер. Черник В. В., науч. ред. Гринчик Н. — сер. Библиотека программиста. — Питер, 2014. — 304с.
-
Гамма Э., Хелм, Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования — СПб.: Питер, 2013.
-
Дорофеев М. Джедайские техники. Как воспитать свою обезьяну, опустошить инбокс и сберечь мыслетопливо /Дорофеев Максим; науч. ред. Рапопорт Татьяна. — сер. МИФ. Личное развитие. — Манн, Иванов и Фербер, 2019. — 368с.
-
Зандстра М. PHP: объекты, шаблоны и методики программирования /Зандстра Мэтт; пер. с анг. Берштейн И. В., науч. ред. Тригуб С. Г. — Вильямс, 2019. — 736с.
-
Кевин Я. PHP и MySQL. От новичка к профессионалу. – Эксмо, 2013.
-
Ким Д. Проект Феникс. Роман о том, как DevOps меняет бизнес к лучшему. – Эксмо, 2015.
-
Котеров Д. Симдянов И. PHP 7 – BHV, 2017.
-
Макконелл С. Совершенный код. Русская редакция, 2017.
-
Мартин, Роберт.С. Чистый код. Создание, анализ и рефакторинг /Роберт.С. Мартин; Сергиенко Ю. — Санкт-Петербург: Питер, 2018. — 464с.
-
Томас Д., Хант Э. Программист-прагматик. – Питер Пресс, 2017.
-
Шоттс Уильям. Командная строка Linux. Полное руководство /Шоттс Уильям; пер. с анг. Киселев А., научн. ред. Тульцева К. — сер. Для профессионалов. — Питер, 2020. — 544с
Домашнее задание
Тема: Работа с окружением
Цель:
Познакомиться с различными типами организации окружения. Осознать их применимость и необходимость. Научиться настраивать рабочее окружение для своих проектов с использованием автоматизации.
Описание/пошаговая инструкция выполнения домашнего задания:
Docker
-
Установить Docker себе на локальную машину
-
Описать инфраструктуру в Docker-compose, которая включает в себя:
-
nginx (обрабатывает статику, пробрасывает выполнение скриптов в fpm)
-
php-fpm (соединяется с nginx через unix-сокет)
-
redis (соединяется с php по порту)
-
memcached (соединяется с php по порту)
-
-
БД подключать как отдельную VM (можно на базе Homestead),
-
либо как контейнер (но тогда не забудьте про директории с данными)
-
Виртуальные машины
-
Развернуть Homestead VM при помощи Vagrant и VirtualBox
-
Сайт должен отвечать на доменное имя application.local
-
Должна быть поддержка проброса директорий
Критерии оценки
Каждый RUN в Dockerfile будет создавать промежуточный образ при сборке.
Помните об этом. Желательно снизить их использование до минимума.
-
Docker — 5 баллов
-
Виртуалки — 5 баллов
To be continued …
В следующих двух статьях — собственно будут мои пошаговые гайды выполнения этих двух задач.
Нет комментариев