SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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.
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.
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.
Real Values.
Alexander Bohndorf <bohndorf@sitegeist.de>
TYPO3 Entwicklungsumgebung mit Docker
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.
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.
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.
Real Values.
Kannst Du mal flux eine TYPO3-Demo aufsetzen?
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
17.
Real Values.
Docker Dir eine TYPO3 Entwicklungsumgebung
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.
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.
Real Values.
PHP Container anpassen
$ nano etc/php/development.ini
$ docker-compose stop
$ docker-compose build app
$ docker-compose up -d
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.
Real Values.
Installation von TYPO3 etc/environment.yml
docker-compose.yml
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.
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
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.
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
35.
Real Values.
PhpStorm: Path Mapping für docroot
/app/web
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