Typo3 in der Cloud installieren

Dabei beleuchten wir sowohl die lokalen Entwicklungsmöglichkeiten als auch diverse Services wie Traefik (Load Balancer) als auch Mailhog und PhpMyAdmin

Wir erklären wie es einfach funktionieren kann

// navigation

Blog


// content

23. Apr 2020

Typo3 im Docker installieren und dann in einer Cloud deployen? Kein Problem mit diesem Guide

Sie möchten gerne Typo3 verwenden, wissen aber nicht genau wie sie es am besten und einfachsten zum Laufen bringen? Oder möchten Sie eine lokale Entwicklungsumgebung einrichten, die Sie dann gegebenenfalls sogar noch ohne große Umbauten auf einen Webserver oder in eine Cloud deployen können? Wir zeigen einen multi-Domain und multi-System Aufbau mit je einer eigenen Datenbankanbindung und den zugehörigen Domains. Zusätzlich installieren wir noch direkt PhpMyAdmin (zum einfachen Verwalten und Prüfen der Datenbank) sowie einen Mailhog Container, der uns Test Emails versendet und anzeigt.

Dieser Guide basiert auf einem System mit Ubuntu 18.04 und einem Docker Image, das ebenfalls Ubuntu 18.04 verwendet. Bitte tun Sie sich den Gefallen Docker nicht auf einem Windows System zu installieren! Wir empfehlen ausdrücklich Linux oder Mac und geben für beide Systeme Hinweise und Links, konzentrieren uns aber hauptsächlich auf Ubuntu.

Die offizielle Installationsanleitung von docker.com ist ausreichend und gut geschrieben, so dass wir diese auch hier verwenden.

Wir starten mit einer Aktualisierung des Systems und konfigurieren anschließend die notwendigen Pakete:

console



$ sudo apt-get update

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Wenn alles geklappt hat, sollten wir jetzt die Software Docker auf unserem System haben. Da wir aber docker-compose verwenden möchten, installieren wir dies nun mit folgenden Befehlen:

console


$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo chmod +x /usr/local/bin/docker-compose

Sollte der Befehl docker-compose anschließend nicht funktionieren, benötigen wir einen Symlink:

console



sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Hiermit testen wir, ob die Installation von docker-compose geklappt hat:

console



$ docker-compose --version
docker-compose version 1.25.5, build 1110ad01

Die Docker YML Datei anlegen, das Herzstück Ihres Docker Projekts

Laden Sie bitte unser Beispiel Git Repository herunter (Link folgt). In diesem finden Sie den gesamten Code, den wir Ihnen hier erklären.

Zu allererst legen wir einen Container an, der den Apache und unser Typo3 Projekt beherbergt und ausliefert:

yaml



renoi: #http://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/php-apache-dev.html
image: webdevops/php-apache:7.3 #ubuntu, php7
container_name: renoi
restart: unless-stopped
depends_on:
- mysql
volumes:
- ./src/dc-renoi:/var/www
- ./data/dc-renoi/data:/var/www/t3renoi/cms/fileadmin
- ./data/dc-renoi/data/uploads:/var/www/t3renoi/cms/uploads
- ./log/dc-renoi/www.renoi.loc:/var/log
- ./config/dc-renoi/php-apache-dev/etc/php/php.ini:/opt/docker/etc/php/php.ini
- ./config/dc-renoi/php-apache-dev/etc/httpd/ssl:/opt/docker/etc/httpd/ssl
- ./config/dc-renoi/php-apache-dev/usr/local/fensterversand:/usr/local/fensterversand
environment:
WEB_DOCUMENT_ROOT: "/var/www/t3renoi/cms"
WEB_ALIAS_DOMAIN: "www.renoi.loc www.lightningsoul.loc lightningsoul.de www.lightningsoul.de www.renoi.de renoi.de nexxoss.com www.nexxoss.com"
LOG_STDOUT: "/var/log/docker.stdout"
LOG_STDERR: "/var/log/docker.stderr"
SHOP_ENV: 1 # needed for the shop environment
APPLICATION_ENV: "development-dockerized"
POSTFIX_RELAYHOST: "mailhog:1025"
DB_NAME: "cms8"
DB_HOST: "mysql"
DB_USER: "root"
DB_PASS: "IhrDBKennwort"
DB_PORT: "3306"
HT_USER: "teg"
HT_PASS: "3zS"
labels:
- 'traefik.enable=true'
- 'traefik.backend=renoi'
#- 'traefik.port=80'
#- 'traefik.protocol=http'
- 'traefik.port=443'
- 'traefik.protocol=https'
- 'traefik.frontend.rule=Host:www.renoi.loc, www.lightningsoul.loc, lightningsoul.de, www.lightningsoul.de, www.renoi.de, renoi.de, nexxoss.com, www.nexxoss.com'
networks:
- developrenoi

Den Docker Container hochfahren

Anschließend fahren wir den Docker Container mit folgendem Befehl hoch:

sudo docker-compose -f dc-renoi.yml up -d

oder

sudo docker-compose -f dc-renoi.yml up

Ohne -d bewirkt, dass der Prozess nicht im Hintergrund gestartet wird und sie somit den Log bzw. die Fehler in der Konsole angezeigt bekommen.

Die Domain lokal einrichten

bash

sudo nano /etc/hosts

renoi.loc 127.0.0.1

control + x

yes

Fertig ist ihr lokaler Docker Typo3 Container

Sie können diesen nun noch nicht aufrufen, da noch einige Container fehlen. Was folgt ist die Einrichtung einer Datenbank in einem weiteren Container sowie einige Helper Container wie beispielsweise PhpMyAdmin, Traefik inkl. Dashboard usw.

Fügen sie nun einfach diese Container ihrer dc-renoi.yml an

yaml

mysql:
#image: mysql:5.7.18
image: mysql:5.5.57 #version from fvstaging
container_name: mysql
restart: unless-stopped
ports:
- '3306:3306' #important so that we can access with mysql workbench from outside the container
environment:
MYSQL_ROOT_PASSWORD: IhrDBKennwort
volumes:
- ./data/dc-renoi/mysql:/var/lib/mysql
- ./config/dc-renoi/mysql/etc/mysql:/etc/mysql
labels:
- 'traefik.enable=false'
networks:
- developrenoi

pma:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: unless-stopped
depends_on:
- mysql
environment:
PMA_HOST: mysql
PMA_USER: root
PMA_PASSWORD: IhrDBKennwort
PHP_UPLOAD_MAX_FILESIZE: 5G
PHP_MAX_INPUT_VARS: 5G
labels:
- 'traefik.enable=true'
- 'traefik.backend=pma'
- 'traefik.port=80'
- 'traefik.frontend.rule=Host:phpmyadmin.renoi.loc'
networks:
- developrenoi

traefik:
image: traefik:1.7.20
container_name: traefik
restart: unless-stopped
command: --web --docker --logLevel=INFO #--logLevel=DEBUG #-c /dev/null
ports:
- '80:80'
- '443:443'
- '8080:8080' # traefik Dashboard
- '9200:9200'
volumes:
- ./config/dc-renoi/traefik/traefik.toml:/etc/traefik/traefik.toml
- ./config/dc-renoi/php-apache-dev/etc/httpd/ssl:/etc/traefik/https
- ./log/dc-renoi/traefik:/var/log
- /var/run/docker.sock:/var/run/docker.sock
networks:
- developrenoi

networks:
developrenoi:
driver: bridge

Sie sollten nun im Browser unter http://renoi.loc das Projekt aufrufen können. Unter http://phpmyadmin.renoi.loc (entsprechende Domain noch in die hosts eintragen, siehe oben) sehen sie PhpMyAdmin.

Nun können sie sich auf den Container verbinden und dort im Terminal per Composer Typo3 installieren, anschließend nur noch die Datenbank in der LocalConfiguration.php konfigurieren und sie sind fürs erste fertig. Achten Sie darauf, dass die IP des MySQL Servers schlicht "mysql" ist, eben wie der Container Name der Datenbank.

sudo docker exec -it renoi /bin/bash

cd /var/www/t3renoi/cms

composer install

 

Google Cloud Installationsanleitung folgt ...

Step for step guide
Read the article Typo3 in Docker in der Google Cloud installieren
Do all the steps of the article Typo3 in Docker in der Google Cloud installieren
Rating: 5.0. 1 Bewertung(en).
1 anonyme Bewertungen
No rating done at all.
Dein Voting war (0 von 5) Du bist nicht eingeloggt.
Um persönliche Votings abzugeben, kannst du dich einloggen.
Click the rating bar to rate this item Please log on to do ratings