Docker Produktivumgebung

Am schnellsten ist EGOCMS mit Hilfe der EGOTEC Docker Images und einer Docker Compose Umgebung installiert.

Projekt exportieren

svn export https://svn.egotec.com/svn/projects/PROJEKTNAME/trunk PROJEKTNAME

Das Projekt kann direkt aus dem EGOTEC Subversion Repositorie exportiert werden.

Es müssen noch die Berechtigungen für den Docker Container auf den shared folder gesetzt werden.

cd PROJEKTNAME
chown -R 1000:1000 .

Docker-Compose Konfiguration

Verwenden Sie hierzu die var/docker/docker-compose-prod.yml Konfigurationsdatei.

version: '2'
services:

mariadb:
container_name: mariadb
image: mariadb:10.3
expose:
- 3306
environment:
- MYSQL_ROOT_PASSWORD=ROOTPASSWORD
- MYSQL_DATABASE=egocms
- MYSQL_USER=egocms
- MYSQL_PASSWORD=MYSQLUSERPASSWORD
networks:
- egocms
volumes: - ../../../PROJEKTNAME-mariadb:/var/lib/mysql tomcat:
container_name: tomcat
image: tomcat:8.5
expose:
- 8080
networks:
- egocms
volumes:
- ../lib/lucene:/usr/local/tomcat/webapps
- ../../../PROJEKTNAME-index:/var/index egocms:
container_name: egocms
image: egotec/ubuntu:18.04
depends_on:
- mariadb
expose:
- 80
- 443
ports:
- 10080:80
networks:
- egocms
volumes:
- ../../:/usr/share/nginx/egocms
command: bash /start.sh

networks:
egocms:

Docker-Compose Umgebung starten.

docker-compose -f var/docker/docker-compose-prod.yml up -d

EGOCMS Konfiguration

In der EGOCMS Konfigurationsdatei var/conf/conf.ini müssen die Datenbank- und Mailseververbindung angepasst werden.

Haben Sie das Projekt direkt aus dem EGOTEC Subversion Repositorie exportiert, dann können Sie die Datenbankverbindung übernehmen. Die Mailservereinstellungen müssen aber geändert werden, da im Repositorie die Verbindung zu Mailhog eingetragen ist. Dieser Mailserver wird in der Entwicklung zum testen eingesetzt. Er versendet keine Mails!

Folgende Änderungen müssen an der 

Datenbank

[db]
host="mariadb"
user="egocms"
password="MYSQLUSERPASSWORD"
database="egocms"
log_select="0"
log_select_timeout="0.01"

Mailserver

[mail]
local_sendmail=""
smtp_auth=""
smtp_server="mailhog"
helo_host=""
smtp_auth_username=""
smtp_auth_password=""
smtp_port="1025"
smtp_secure="no"
lock_max_mails="100"
lock_timespan="1"

Bootstrap

Ggf. den freigegebenen Port 80 auf einen anderen Port umlegen.

Im Bootstrap werden das EGOCMS System geladen und die Daten eingespielt.

docker exec PROJEKNAME bash /bootstrap.sh

Reverse Proxy

Vor den Docker Container muss noch ein Reverse Proxy geschlatet werden. Dieser leitet Anfragen an die Ports 443 für alle Domains an Port 10080 (oder den von Ihnen gewählten Port) des Docker Containers weiter.

Apache2

Beispielkonfigurationsdatei für einen Apache2 als Reverse Proxy.

<VirtualHost *:80>
ServerName DOMAIN.COM
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://DOMAIN.COM%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>

<VirtualHost *:443>
ServerAdmin ADMIN_EMAIL
ServerName DOMAIN.COM
ErrorLog ${APACHE_LOG_DIR}/error.code.log
CustomLog ${APACHE_LOG_DIR}/access.code.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/DOMAIN.COM.crt.pem
SSLCertificateKeyFile /etc/apache2/ssl/DOMAIN.COM.key.pem
SSLCACertificateFile /etc/apache2/ssl/intermediate.crt
SSLCACertificatePath /etc/ssl/certs/
AllowEncodedSlashes on
ProxyPass / http://127.0.0.1:31080/
ProxyPassReverse / http://127.0.0.1:31080/
RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>