Standard

In der Standardumgebung sind alle Komponenten für die EGOCMS Umgebung in einem Docker Container. Nur der Mailserver bekommt einen eigenen Container.

Der Hauptcontainer heißt egocms. Er benutzt das egotec/server-cms:18.04 Image und beinhaltet folgenden Software Stack.:

  • Ubuntu 18.04 LTS
  • nginx
  • MariaDB
  • php-fpm
  • libreoffice headless
  • pdf2text

Das Projektverzeichnis wird in den egocms Container direkt als Verzeichnis /usr/share/nginx/egocms eingebunden.

Da Daten der MariaDB Datenbank befinden sich Projektunterverzeichnis var/docker/mysql. Dadurch kann die Docker-Compose Umgebung komplett mit down heruntergefahren und gelöscht werden und die Daten bleiben dennoch für den nächsten Start erhalten.

Alle Container befinden sich im Netzwerk egocms. Die Container können sich daher untereinander über ihre Containernamen ansprechen.

docker-compose.yml

version: '2'
services:
egocms:
container_name: egocms
image: egotec/server-cms:18.04
ports:
- 80:80
- 443:443
expose:
- 80
- 443
networks:
- egocms
volumes:
- ./mysql:/var/lib/mysql
- ../../:/usr/share/nginx/egocms
command: bash /start.sh

mailhog:
container_name: mailhog
image: mailhog/mailhog
ports:
- 8025:8025
expose:
- 8025
- 1025
networks:
- egocms

networks:
egocms:

Auf Kommandozeile kann nach dem Start von docker-compose ein Bootstrap durchgeführt werden. Hierbei wird automatisch die aktuelle Datensicherung, die sich in var/setup befindet, eingespielt.

 docker exec egocms bash /bootstrap.sh

IDE

Wir speichern die IDE Konfiguration in der Versionsverwaltung, daher kann die Docker Umgebung auch einfach über die IDE gestartet und beendet werden.

Docker-compose kann somit direkt über die IDE gestartet werden (grünes Dreieck rechts oben). Der Bootstrap kann anschließend über den Exec Eintrag im kontextsensitiven Menü des egocms Containers gestartet werden.

Bildschirmfoto von 2018-07-13 12-20-32.png

Wir stellen auch gerne mehrere Umgebungen zur Verfügung. Zumeist ist das die Standardumgebung mit einem EGOCMS Server und eine Umgebung, die so genau wie möglich die tatsächliche Infrastruktur im Livebetrieb widerspiegelt.

Diese Umgebungen konfigurieren wir schon in der IDE.

Bildschirmfoto von 2018-07-13 12-22-29.png