O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Docker Entwicklungsumgebung für TYPO3 mit xdebug

Vortrag auf dem TYPO3 Meetup 3 am 13.11.2017 bei sitegeist
über Docker Umgebungen für TYPO3 zu Präsentationszwecken und als Entwicklungsumgebung mit xdebug.

  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

Docker Entwicklungsumgebung für TYPO3 mit xdebug

  1. 1. Real Values. 3.
  2. 2. Real Values. Agenda ● 19:00 Welcome ● Vortrag 1: TYPO3 Entwicklungsumgebung mit Docker ● Pause mit Pizza & Bier in der Rehlounge (ca. 30 Minuten) ○ eure Themenvorschläge ans Board und Voting ○ eure Angebote für Vorträge ans Board mit Kontaktdaten ● Vortrag 2: Remote Debugging von Extbase Extensions
  3. 3. Real Values. Alexander Bohndorf <bohndorf@sitegeist.de> TYPO3 Entwicklungsumgebung mit Docker
  4. 4. Real Values. Ziele TYPO3-Demosystem ● für Präsentationen etc. ● Black Box, minimaler Installationsaufwand Entwicklungsumgebung für TYPO3 in kürzester Zeit ● unter Mac und unter Linux ● vielleicht auch noch unter Windows 10 (Creators Update) ● PHP-Laufzeitumgebung für Betrieb von TYPO3 ● kein TYPO3-Image als Black Box
  5. 5. Real Values. Was braucht man für docker (Notebook/PC) ? ● Hardware ○ 16 GB RAM mindestens ○ SSD (256+ GB) ○ CPU muss Virtualisierung können ● Betriebssystem ○ Linux (optimal) ○ Mac (gut) ○ Windows 10 (Creators Update) (wird sich zeigen) ● Software ○ docker ○ docker-compose ○ optional: git ○ optional: composer (und dafür PHP)
  6. 6. Real Values. Was muss das Docker-Setup mitbringen? ● PHP 7 inkl. diverser Bibliotheken ● GIT ● composer ● Webserver (z.B. Apache) ● Maria DB (oder MySQL) ● SSL ● Mailversendung ● Debugging ● Tools wie Image Magick usw.
  7. 7. Real Values. Kannst Du mal flux eine TYPO3-Demo aufsetzen?
  8. 8. Real Values. Public TYPO3 Docker Images - Das Leichtgewicht martinhelmich/typo3 ● leichtgewichtig und gut verständlich ● optimal für eine schnelle Demo eines frischen TYPO3-Systems ● nicht optimal zum Entwickeln ● kein docker-compose setup ● nur TYPO3-Container ohne Datenbank-Container
  9. 9. Real Values. Docker Images laden $ docker pull martinhelmich/typo3 (506 MB) $ docker pull mariadb:latest (394 MB)
  10. 10. Real Values. Datenbank starten $ docker run -d --name typo3-db -e MYSQL_ROOT_PASSWORD=mysecretpassword -e MYSQL_USER=typo3 -e MYSQL_PASSWORD=mysecretpassword -e MYSQL_DATABASE=typo3 mariadb:latest --character-set-server=utf8 --collation-server=utf8_unicode_ci
  11. 11. Real Values. TYPO3 starten $ docker run -d --name typo3-web --link typo3-db:db -p 80:80 martinhelmich/typo3:8.7
  12. 12. Real Values. 456 Zeichen um TYPO3 zu starten
  13. 13. Real Values. Geht besser: docker-compose docker-compose.yml version: '2' services: typo3-web: image: martinhelmich/typo3:8.7 ports: - "80:80" depends_on: - typo3-db
  14. 14. Real Values. Geht besser: docker-compose services: typo3-db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=mysecurepassword - MYSQL_USER=typo3 - MYSQL_PASSWORD=mysecurepassword - MYSQL_DATABASE=typo3 command: > --character-set-server=utf8 --collation-server=utf8_unicode_ci
  15. 15. Real Values. Was bleibt? $ git clone https://github.com/sitegeist/typo3_demo.git . $ docker-compose up -d
  16. 16. Real Values. 76 Zeichen um TYPO3 zu starten
  17. 17. Real Values. Docker Dir eine TYPO3 Entwicklungsumgebung
  18. 18. Real Values. Public TYPO3 Docker Images - Das Komplettpaket github.com/webdevops/TYPO3-docker-boilerplate ● sehr umfangreich ● gute Dokumentation ● optimal als Entwicklungsumgebung für TYPO3 Projekte ● komplettes docker-compose setup ● diverse optionale Zusatzdienste ○ SolR ○ Redis ○ PhpMyAdmin ○ MySQL, MariaDB, PostgreSQL, PerconaDB ● komfortable make scripts
  19. 19. Real Values. PHP Container starten $ git clone --recursive https://github.com/webdevops/TYPO3-docker-boilerplate.git projectname $ cd projectname $ cp docker-compose.development.yml docker-compose.yml $ docker-compose up -d http://localhost:8000/ oder https://localhost:8443/
  20. 20. Real Values. PHP Container anpassen $ nano etc/php/development.ini $ docker-compose stop $ docker-compose build app $ docker-compose up -d
  21. 21. Real Values. TYPO3 Projekt aufsetzen Variante 1 $ make create typo3 Variante 2 (lokal mit composer) $ rm -f app/.gitkeep $ composer create-project typo3/cms-base-distribution app/ $ touch app/web/FIRST_INSTALL app/.gitkeep composer im Container auszuführen, ist sicherer wegen der PHP-Version!
  22. 22. Real Values. Installation von TYPO3 etc/environment.yml docker-compose.yml
  23. 23. Real Values. TYPO3 Introduction Package mit composer installieren Im Host: In den Container wechseln (analog zu SSH in virtuelle Maschine) $ make bash Im Container $ composer update $ composer require typo3/cms-introduction Extension Manager im Browser Extension introduction aktivieren
  24. 24. Real Values. Container runterfahren Datenbank sichern $ make mysql-backup Container runterfahren (stoppen und löschen): $ docker-compose down wieder hochfahren $ docker-compose up -d Datenbank wiederherstellen $ make mysql-restore
  25. 25. Real Values. Datenbank persistieren docker-compose.yml anpassen mysql: build: context: docker/mysql/ ports: - 13306:3306 volumes: - ./data/mysql:/var/lib/mysql volumes_from: - storage env_file: - etc/environment.yml - etc/environment.development.yml Verzeichnis anlegen $ mkdir -p data/mysql
  26. 26. Real Values. Weitere Dienste ● PhpMyAdmin ○ lieber DB-Zugriff direkt in PhpStorm auf Port 13306 ● Mailhog ○ Demo http://localhost:8025/ ● SolR ● Redis ● Memcached ● elasticsearch ● FTP-Server
  27. 27. Real Values. Probleme und Lösungen für große Projekte ● Gigabytes an Assets ○ Netzwerk-Mounts auf Host als Volumes in Containern ● Initialer Datenbankinhalt ● Performance-Issues auf MacOS ○ https://docs.docker.com/docker-for-mac/osxfs-caching/ ○ :cached oder :delegated an Volume-Definition hängen ● Dateirechte und Benutzer ○ Prozesse unter Linux ● Datenmüll von Docker ○ $ docker volume prune ● Akzeptanztests
  28. 28. Real Values. Fragen? Fragen!
  29. 29. Real Values. Alexander Bohndorf <bohndorf@sitegeist.de> Remote Debugging von Extbase Extensions
  30. 30. Real Values. xdebug Konfiguration für Linux Hosts etc/php/development.ini ; XDebug xdebug.remote_enable = 1 xdebug.remote_connect_back = on xdebug.idekey = "PHPSTORM" xdebug.cli_color = 1 xdebug.max_nesting_level = 1000
  31. 31. Real Values. xdebug Konfiguration für MacOS etc/php/development.ini ; XDebug xdebug.remote_enable = 1 xdebug.remote_connect_back = 0 # since docker 17.06 xdebug.remote_host = docker.for.mac.localhost xdebug.idekey = "PHPSTORM" xdebug.cli_color = 1 xdebug.max_nesting_level = 1000
  32. 32. Real Values. Bookmarklets im Browser einrichten https://www.jetbrains.com/phpstorm/marklets/
  33. 33. Real Values. PhpStorm lauschen lassen (xdebug Server aktivieren)
  34. 34. Real Values. PhpStorm: Path Mapping
  35. 35. Real Values. PhpStorm: Path Mapping für docroot /app/web
  36. 36. Real Values. Debugging Probleme und Lösungen ● PhpStorm reagiert nicht auf Debugger ○ lauscht PhpStorm? ○ sind die Breakpoints aktiv oder deaktiviert? ○ liefert TYPO3 eine gecachte Seite aus? no_cache=1 oder Caching generell deaktivieren ○ sind die Path Mappings in PHP Storm korrekt? ○ ist das XDEBUG_SESSION cookie gesetzt und hat den Wert PHPSTORM? (Bookmarklet geklickt?) ○ xdebug settings für OS korrekt? (Unterschiede zwischen Docker für Linux/MacOS) ○ PHP mit xdebug Erweiterung kompiliert? ● Stop an erster Seite aber nicht am Breakpoint ○ PhpStorm: Settings/PHP/Servers, Path Mappings korrekt für gesamtes Docroot? ○ xdebug_break() temporär einbauen ○ PhpStorm: Run/Break at first line in PHP scripts aktivieren
  37. 37. Real Values. Fragen? Fragen!
  38. 38. Real Values. Vielen Dank! Alexander Bohndorf <bohndorf@sitegeist.de>

×