Docker auf Kommandozeile

Docker Umgebung starten

Ein per Subversion ausgespieltes Projekt starten Sie mit folgendem Kommandozeilenaufruf.

cd ~/workspace/PROJECTNAME/var/docker
docker-compose up -d

Hierbei werden alle Docker Container gestartet, die das Projekt benötigt, d.h.

  • EGOCMS Webserver
    • Ubuntu
    • Red Hat
    • SuSE
  • ggf. ein Datenbankserver
    • MySQL
    • MariaDB
    • MS SqlServer
    • Oracle DB
  • ein Dummy smtp Server (mailhog)
  • ggf. ein Indizierungsserver
    • egotec/elasticsearch:6 (privat, Freischaltung über EGOTEC Support)
    • tomcat
    • wildfly
  • ggf. Authentifizierungsserver
    • SAML2
    • LDAP
    • ActiveDirectory

Je nach Projekt und Orginalinstalltion befinden sich der Datenbank- und Indizierungsserver im EGOCMS Webserver. 

Wir stellen die docker-compose Umgebung immer so nah wie dem Produktivsystem des Projekts nach. D.h. wenn im Produktivsystem eine externe Oracle Datenbank angesteuert wird, dann wird es in der docker-compose Umgebung auch einen Oracle Container geben.

Folgende Ports werden hierbei belegt:

  • http über 80 und https über 443 für den EGOCMS Server
  • http über 8025 für den Dummy SMTP Server
  • ggf. http über 10080 und https über 10443 für einen Liveserver
  • ggf. http über 20080 bis 60080 und https über 20443 bis 60443 für weitere Clusterserver
  • ggf. bei sehr großen Installationen http über 11080 bis 59080 und https über 11443 bis 59443 für noch mehr Clusterserver
  • ggf. werden auch mehrere Datenbank und Indizierungsserver gestartet

Bei größeren Projekten mit mehreren Clusterservern werden mindestens zwei docker-compose Umgebungen eingerichtet. Die erste Umgebung ist einfach aufgebaut, so dass die Templates schnell und Resourcensparend umgesetzt werden können. Die zweite Umgebung spiegelt dann die komplette Umgebung wider, so dass Integrationsstests durchgeführt werden können.

wb_incandescent
Im EGOCMS Docker Container ist immer das egocmsdev Paket aktiviert. D.h. das Debugging und Profiling kann über den Browser resp. die Url aktiviert werden.
wb_incandescent
Da direkt die lokalen Ports 80 und 443 auf der Workstation verwendet werden, darf auf der Workstation selbst kein Webserver laufen!

Bootstrap

Nach dem ersten Start laufen zwar der Webserver und PHP im Docker Container, das Projekt ist allerdings noch nicht initialisiert und EGOCMS ist nicht installiert. Es muss daher ein sogenannter Bootstrap durchgeführt werden.

docker exec PROJEKTNAME bash /bootstrap.sh

Es handelt sich hierbei um ein Bashskript, dass die vom Projekt verwendete EGOCMS Version herunterlädt und danach die in der Versionsverwaltung hinterlegte Datensicherung einspielt.

Arbeiten

Bildschirmfoto von 2018-05-02 14-20-58.png

Die EGOCMS Installation ist nun sowohl über http://localhost 

Bildschirmfoto von 2018-05-02 14-21-45.png

als auch https://localhost erreichbar. Achtung: Das Zertifikat für localhost ist nicht sicher. Sie müssen dieses daher Ihrem Browser explizit erlauben. 

Kurzanleitung weiterer Docker-Compose Befehle

Die Befehle müssen immer im Hauptverzeichnis des Projekts ausgeführt werden.

  • docker-compose down
    Docker Container PROJEKTNAME anhalten. Dies kann mehrere Sekunden dauern. Beim Herunterfahren der Workstation geschieht dies automatisch.
  • docker exec -it egocms bash
    Eine Kommandozeile im Docker Container öffnen.
  • docker ps
    Alle gerade laufenden Docker Container anzeigen.
  • docker ps --all
    Alle Docker Container anzeigen, auch solche, die aktuell gar nicht laufen.
  • docker rm PROJEKTNAME
    Docker Container löschen.
  • docker rmi IMAGENAME/IMAGEUUID
    Docker Image löschen.
  • docker pull egotec/server-cms:16.04
    Eine aktuelle Version des Docker Images egotec/server-cms:16.04 herunterladen.
  • docker-compose pull
    Alle Images einer docker-compose Umgebung aktualisieren.
warning
Da alle docker-compose Umgebungen mindestens die Ports 80, 443 und 8025 belegen, können nicht mehrere Projekte gleichzeitig gestartet werden.