Diskussion:Startumgebung erstellen/Containerbau: Unterschied zwischen den Versionen
Romana (Diskussion | Beiträge) (→Schritt 5) |
Romana (Diskussion | Beiträge) (→Schritt 5) |
||
| Zeile 77: | Zeile 77: | ||
und | und | ||
| − | <pre> | + | <pre>CREATE USER 'testerbwpm'@'IP-Adresse des Docker-Host nach innen' IDENTIFIED BY 'Passwort für Tester'; (für Docker-Host) |
| − | CREATE USER 'testerbwpm'@'IP-Adresse des Docker-Host nach innen' IDENTIFIED BY 'Passwort für Tester'; (für Docker-Host) | ||
GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse des Docker-Host nach innen'; | GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse des Docker-Host nach innen'; | ||
CREATE USER 'testerbwpm'@'IP-Adresse des Tester-Containers' IDENTIFIED BY 'Passwort für Tester'; (für Tester) | CREATE USER 'testerbwpm'@'IP-Adresse des Tester-Containers' IDENTIFIED BY 'Passwort für Tester'; (für Tester) | ||
| Zeile 89: | Zeile 88: | ||
QUIT; | QUIT; | ||
</pre> | </pre> | ||
| + | Der erste User wird verwendet, um einen Dump auf der Konsole einzuspielen, bevor der Tester läuft, weil der Dump nicht aus dem Tester-Container eingespielt werden kann (keine Verbindung zur Datenbank). | ||
| + | |||
| + | Der zweite User ist nötig, um Codeception den Zugriff auf die Datenbank zu ermöglichen. | ||
| + | |||
| + | Der dritte User wird verwendet, damit auch per phpMyAdmin, das auf dem lokalen Server läuft, auf die Datenbank zugreifen zu können. Gut für diverse Umbauarbeiten, vor allem aber am Anfang, um einen Original-Dump zu bekommen. | ||
| + | |||
| + | Der vierte User ist einfach für kleinere Arbeiten man der Konsole vom Arbeitsplatz aus. | ||
| + | |||
| + | Wirklich zwingend für die Tests ist nur der zweite User und wenn während der Tests auch ein Dump eingespielt werden soll der erste. | ||
| + | |||
| + | |||
Mit | Mit | ||
exit | exit | ||
den Container wieder verlassen. | den Container wieder verlassen. | ||
Version vom 21. April 2017, 14:52 Uhr
Inhaltsverzeichnis
Flexible Container
Schritt 1
- Die Dateien der Datenbank lassen sich als einfacher User nicht kopieren, da Benutzer und Gruppe auf 999 stehen. Also muss der root ran.
- Ordner /tmp leeren, Rechte auf alle Ordner auf 0777 setzen
- Zugriff per phpMyAdmin nicht vergessen.
- Zugriff für die neuen IP-Adressen konfigurieren
Schritt 2
Um mit einem Compose-Template zu arbeiten, das Variablen enthält, habe ich dies hier gefunden! Dazu kommt das Wissen, dass Umgebungsvariablen der Shell in der Compose-Datei ausgewertet werden können (habe ich beim Tester verwendet), dass man Umgebungsvariablen in der Compose-Datei zu Beginn setzen kann (damit kann man sie später in genau dieser Datei auch auswerten) und dass die Umgebungsvariablen an den Container selbst weiter gereicht werden, egal, wo sie gesetzt werden. Damit habe ich eine genügend flexible Möglichkeit, mit Templates für Container-Services zu arbeiten. Schließlich besteht auch noch die Möglichkeit, eine Datei anzugeben, die die Umgebungsvariablen enthält. was die Sache noch mächtiger macht. Siehe hier.
Container für die Infrastrukur
Ausgangspunkt ist die Compose-Datei /vms/dockers/containers/infrastructure/run-joomla.yml.
- Kopie nach run-.yml, bearbeiten:
- IP-Adressen sind in einem 8er-Netz, also +n*8 (1*8 ist schon belegt durch vm leer) für
- networks -subnet
- services: Datenbank
- services: Mailserver
- services: Webserver
- Umbenennen, damit die Infrastrukturen auch parallel laufen können:
- Networks, auch
- Services
- Domainname
- Services selbst, dazu jeweils
- Containername
- Hostname
- Networks, auch
- links und depends_on in Service Webserver anpassen auf neuen Service-Namen der Datenbank
- ports, linke Seite erhöhen um n*1
- volumes Pfad auf den neuen Pfad anpassen
Container für den Tester
Ausgangspunkt ist die Compose-Datei /vms/dockers/containers/testers/simple-joomla.yml.
Hier sind praktisch dieselben Anpassungen zu machen wie bei den Containern für die Infrastruktur.
Schritt 3
Kontrollieren, ob die Variable
public $mailer = 'sendmail';
wirklich auf sendmail steht. Oft steht sie auf smtp.
Folgende Variablen müssen in der configuration.php angepasst werden:
$host
auf den Namen des Services.
Folgende Variablen werden wegen des besseren Verständnisses und damit man die einzelnen Umgebungen besser auseinander halten kann, auch angepasst:
$sitename
Damit man (zum Beispiel im Video) sehen kann, in welcher Umgebung gerade getestet wird.
$user
Neuer User für die Datenbank. Muss auch in der Datenbank angelegt und mit Rechten ausgestattet werden. Dass hier jeweils ein eigener User verwendet wird, hat später den Vorteil, dass man mit phpMyAdmin aus dem Browser heraus mit jeweils eigenen Zugangsdaten arbeiten kann.
$mailfrom
Einfach auf das Netzwerk, der bei den Containern verwendet wird, anpassen.
$fromname
Suffix, das bei den Containern verwendet wird, zufügen
$smtphost
Auf die IP des Mailservers dieses Netzwerkes anpassen
Schritt 4
Mit diesen Befehl kann der neue Container von überall her gestartet werden:
docker-compose -f /vms/dockers/containers/infrastructure/run-bwpm.yml -p bwpmtests up -d
Schritt 5
Gegebenenfalls muss man sich erst auf den Container der Datenbank verbinden:
docker exec -i -t mysqldbbwpm /bin/bash
Dann geht es weiter mit
mysql -u root -p
(Passwort eingeben)
use mysql
und
CREATE USER 'testerbwpm'@'IP-Adresse des Docker-Host nach innen' IDENTIFIED BY 'Passwort für Tester'; (für Docker-Host) GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse des Docker-Host nach innen'; CREATE USER 'testerbwpm'@'IP-Adresse des Tester-Containers' IDENTIFIED BY 'Passwort für Tester'; (für Tester) GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse des Tester-Containers'; CREATE USER 'testerbwpm'@'IP-Adresse des lokalen Servers' IDENTIFIED BY 'Passwort für Tester'; (für phpMyAdmin) GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse des lokalen Servers'; CREATE USER 'testerbwpm'@'IP-Adresse der lokalen Arbeitsstation' IDENTIFIED BY 'Passwort für Tester'; (für User auf Arbeitsstation) GRANT ALL PRIVILEGES ON * . * TO 'testerbwpm'@'IP-Adresse der lokalen Arbeitsstation'; FLUSH PRIVILEGES; QUIT;
Der erste User wird verwendet, um einen Dump auf der Konsole einzuspielen, bevor der Tester läuft, weil der Dump nicht aus dem Tester-Container eingespielt werden kann (keine Verbindung zur Datenbank).
Der zweite User ist nötig, um Codeception den Zugriff auf die Datenbank zu ermöglichen.
Der dritte User wird verwendet, damit auch per phpMyAdmin, das auf dem lokalen Server läuft, auf die Datenbank zugreifen zu können. Gut für diverse Umbauarbeiten, vor allem aber am Anfang, um einen Original-Dump zu bekommen.
Der vierte User ist einfach für kleinere Arbeiten man der Konsole vom Arbeitsplatz aus.
Wirklich zwingend für die Tests ist nur der zweite User und wenn während der Tests auch ein Dump eingespielt werden soll der erste.
Mit
exit
den Container wieder verlassen.