Docker Entwicklungsumgebung für TYPO3 mit xdebug

Real Values.
3.
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
Real Values.
Alexander Bohndorf <bohndorf@sitegeist.de>
TYPO3 Entwicklungsumgebung mit Docker
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
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)
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.
Real Values.
Kannst Du mal flux eine TYPO3-Demo aufsetzen?
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
Real Values.
Docker Images laden
$ docker pull martinhelmich/typo3 (506 MB)
$ docker pull mariadb:latest (394 MB)
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
Real Values.
TYPO3 starten
$ docker run -d 
--name typo3-web 
--link typo3-db:db 
-p 80:80 
martinhelmich/typo3:8.7
Real Values.
456 Zeichen
um TYPO3 zu starten
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
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
Real Values.
Was bleibt?
$ git clone https://github.com/sitegeist/typo3_demo.git .
$ docker-compose up -d
Real Values.
76 Zeichen
um TYPO3 zu starten
Real Values.
Docker Dir eine TYPO3 Entwicklungsumgebung
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
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/
Real Values.
PHP Container anpassen
$ nano etc/php/development.ini
$ docker-compose stop
$ docker-compose build app
$ docker-compose up -d
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!
Real Values.
Installation von TYPO3 etc/environment.yml
docker-compose.yml
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
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
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
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
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
Real Values.
Fragen? Fragen!
Real Values.
Alexander Bohndorf <bohndorf@sitegeist.de>
Remote Debugging von Extbase Extensions
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
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
Real Values.
Bookmarklets im Browser einrichten
https://www.jetbrains.com/phpstorm/marklets/
Real Values.
PhpStorm lauschen lassen (xdebug Server aktivieren)
Real Values.
PhpStorm: Path Mapping
Real Values.
PhpStorm: Path Mapping für docroot
/app/web
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
Real Values.
Fragen? Fragen!
Real Values.
Vielen Dank! Alexander Bohndorf <bohndorf@sitegeist.de>
1 of 38

Recommended

Vagrant - Einführung & Verwendung by
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungTilo Baller
516 views44 slides
Docker Workbench by
Docker WorkbenchDocker Workbench
Docker WorkbenchPatrick Paechnatz
913 views32 slides
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2... by
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
247 views29 slides
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In... by
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...NETWAYS
31 views34 slides
Varnish PHP Unconference Hamburg 2012 by
Varnish PHP Unconference Hamburg 2012Varnish PHP Unconference Hamburg 2012
Varnish PHP Unconference Hamburg 2012Florian Holzhauer
1.3K views40 slides
Docker for Python Development by
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
1K views35 slides

More Related Content

What's hot

Web-Services mit Go by
Web-Services mit GoWeb-Services mit Go
Web-Services mit GoSebastian Harl
189 views21 slides
Introduction to the command line by
Introduction to the command lineIntroduction to the command line
Introduction to the command linesteffenbauer
833 views32 slides
Inside HTTP: Webdebugging mit FIddler by
Inside HTTP: Webdebugging mit FIddlerInside HTTP: Webdebugging mit FIddler
Inside HTTP: Webdebugging mit FIddlerMax Nowack
728 views27 slides
Typo3 und Varnish by
Typo3 und VarnishTypo3 und Varnish
Typo3 und VarnishOliver Thiele
2K views34 slides
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange by
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeNETWAYS
40 views51 slides
GNU Bourne Again SHell by
GNU Bourne Again SHellGNU Bourne Again SHell
GNU Bourne Again SHellFabian Becker
958 views43 slides

What's hot(18)

Introduction to the command line by steffenbauer
Introduction to the command lineIntroduction to the command line
Introduction to the command line
steffenbauer833 views
Inside HTTP: Webdebugging mit FIddler by Max Nowack
Inside HTTP: Webdebugging mit FIddlerInside HTTP: Webdebugging mit FIddler
Inside HTTP: Webdebugging mit FIddler
Max Nowack728 views
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange by NETWAYS
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
NETWAYS40 views
PhpStorm 6 Configuration for TYPO3 by marco-huber
PhpStorm 6 Configuration for TYPO3PhpStorm 6 Configuration for TYPO3
PhpStorm 6 Configuration for TYPO3
marco-huber3.1K views
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz by Verein FM Konferenz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzFMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
Ausfallsichere Kultur mit Plone by Jens Klein
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit Plone
Jens Klein1.3K views
OSMC 2021 | SNMP Monitoring mit Prometheus / OIDs dynamisch auswählen und im ... by NETWAYS
OSMC 2021 | SNMP Monitoring mit Prometheus / OIDs dynamisch auswählen und im ...OSMC 2021 | SNMP Monitoring mit Prometheus / OIDs dynamisch auswählen und im ...
OSMC 2021 | SNMP Monitoring mit Prometheus / OIDs dynamisch auswählen und im ...
NETWAYS118 views
Monitoring von SAP mit check_sap_health by Gerhard Lausser
Monitoring von SAP mit check_sap_healthMonitoring von SAP mit check_sap_health
Monitoring von SAP mit check_sap_health
Gerhard Lausser7.1K views
Dancer und DBIx::Class by LinuXia
Dancer und DBIx::ClassDancer und DBIx::Class
Dancer und DBIx::Class
LinuXia854 views
Automatisierte Linux Administration mit (R)?ex by Jan Gehring
Automatisierte Linux Administration mit (R)?ex Automatisierte Linux Administration mit (R)?ex
Automatisierte Linux Administration mit (R)?ex
Jan Gehring815 views
PHAR better Tools by PHP in DD
PHAR better ToolsPHAR better Tools
PHAR better Tools
PHP in DD923 views
SysDig Metriken zentralisieren by inovex GmbH
SysDig Metriken zentralisierenSysDig Metriken zentralisieren
SysDig Metriken zentralisieren
inovex GmbH554 views
Ceph Introduction @GPN15 by m1no
Ceph Introduction @GPN15Ceph Introduction @GPN15
Ceph Introduction @GPN15
m1no790 views

Similar to Docker Entwicklungsumgebung für TYPO3 mit xdebug

Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH by
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
1.8K views64 slides
Ausrollen von Multi-Tier-Applikationen mit Docker by
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerB1 Systems GmbH
246 views25 slides
The pain of choice - Important libs for C# developers by
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersFDeitelhoff
702 views59 slides
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf by
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfSyahri Ramadhan
4 views56 slides
docker.io - Secure And Portable Containers Made Easy by
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easyinovex GmbH
2.1K views38 slides
Dart (Teil II der Tour de Dart) by
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Nane Kratzke
6.5K views112 slides

Similar to Docker Entwicklungsumgebung für TYPO3 mit xdebug(20)

Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH by agilemethoden
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
agilemethoden1.8K views
Ausrollen von Multi-Tier-Applikationen mit Docker by B1 Systems GmbH
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
B1 Systems GmbH246 views
The pain of choice - Important libs for C# developers by FDeitelhoff
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
FDeitelhoff702 views
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf by Syahri Ramadhan
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdfDockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Dockerbank II - 03 - Szenarien des Routinebetriebs (aktualisiert).pdf
Syahri Ramadhan4 views
docker.io - Secure And Portable Containers Made Easy by inovex GmbH
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
inovex GmbH2.1K views
Dart (Teil II der Tour de Dart) by Nane Kratzke
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
Nane Kratzke6.5K views
Was gibt es Neues im Docker-Universum by Nicholas Dille
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
Nicholas Dille748 views
Hendrik Jungnitsch: Software verpacken mit Docker by gedoplan
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
gedoplan221 views
HTML5 und node.js Grundlagen by Mayflower GmbH
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH1.7K views
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung by MongoDB
Back to Basics – Webinar 2: Ihre erste MongoDB-AnwendungBack to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
Back to Basics – Webinar 2: Ihre erste MongoDB-Anwendung
MongoDB901 views
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa... by B1 Systems GmbH
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
B1 Systems GmbH266 views
Docker und Kubernetes Patterns & Anti-Patterns by Josef Adersberger
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
Josef Adersberger682 views
Docker und Kubernetes Patterns & Anti-Patterns by QAware GmbH
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
QAware GmbH1.9K views
WebLogic im Docker Container by Andreas Koop
WebLogic im Docker ContainerWebLogic im Docker Container
WebLogic im Docker Container
Andreas Koop12.5K views
C API for Lotus Notes & Domino by Ulrich Krause
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
Ulrich Krause4.3K views
C / C++ Api for Beginners by Ulrich Krause
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
Ulrich Krause1.6K views
Infrastructure as Code - BaselOne 17 by remigius-stalder
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
remigius-stalder494 views

Docker Entwicklungsumgebung für TYPO3 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
  • 9. Real Values. Docker Images laden $ docker pull martinhelmich/typo3 (506 MB) $ docker pull mariadb:latest (394 MB)
  • 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. Real Values. TYPO3 starten $ docker run -d --name typo3-web --link typo3-db:db -p 80:80 martinhelmich/typo3:8.7
  • 12. Real Values. 456 Zeichen um TYPO3 zu starten
  • 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. 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. Real Values. Was bleibt? $ git clone https://github.com/sitegeist/typo3_demo.git . $ docker-compose up -d
  • 16. Real Values. 76 Zeichen um TYPO3 zu starten
  • 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
  • 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. 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
  • 29. Real Values. Alexander Bohndorf <bohndorf@sitegeist.de> Remote Debugging von Extbase Extensions
  • 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. 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. Real Values. Bookmarklets im Browser einrichten https://www.jetbrains.com/phpstorm/marklets/
  • 33. Real Values. PhpStorm lauschen lassen (xdebug Server aktivieren)
  • 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
  • 38. Real Values. Vielen Dank! Alexander Bohndorf <bohndorf@sitegeist.de>