Moin,
da immer mehr server sources wie FliegeV3 & SuraHead sich unter windows compilenen und laufen,
lassen wollte ich ein kleines How-To veröffentlichen. Eventuell kann es jemand gebrauchen.
Es handelt sich hierbei um einen Docker-Container, in dem sich eine MySQL Instanz befindet.
Was sind Docker-Container?
Was sind Docker Container?
Docker Container sind eine Art light-Version von Virtuellen Maschinen.
Während Virtuelle Maschinen die Hardware eines Rechners, also den Prozessor, die Festplatte, usw. virtualisieren, virtualisieren Docker Container das Betriebssystem. Dies wird auch Containervirtualisierung genannt. Aber was bedeutet das?
Containervirtualisierung bedeutet, dass basierend auf einem auf der Maschine laufenden Host-Betriebssystems (z.B. Ubuntu) weitere Linux Distributionen wie CentOS, Debian oder auch Ubuntu, parallel betrieben werden können. Der Trick: es wird der Kern des Host-Betriebssystems (der Kernel) mit den Containern geteilt.
Dabei kann das Host-Betriebssystem den Zugriff auf Dateien, Hardware, Speicher und Geräte beliebig einschränken. Womit die einzelnen Container voneinander isoliert laufen können.
Quelle: Bitte melden Sie sich an, um diesen Link zu sehen.
Ich bevorzuge docker container, da ich somit keinen MySQL server direkt unter windows installieren musst und
meinen workflow mit der DB automatisieren kann. Wie zum Beispiel hochladen von .sqls. Außerdem kann ich mit anpassen
einer Zeile die Version von MySQL ändern.
Wichtig bei Fliege V3 fehlen einige MySQL statments, dafür dies klappt. Dafür fügt einfach folgende Zeilen zu euren
- account.sql
- player.sql
- log.sql
- common.sql
hinzu. Ihr müsst natürlich bei einer player.sql es durch CREATE DATABASE player und USE player ersetzen etc.
Um den Container nun nutzen zu können, müsst ihr zuerst einmal unter eurem windows WSL2 aktivieren, hierbei handelt
es sich um ein Linux basiertes Subsystem in Windows. Bitte melden Sie sich an, um diesen Link zu sehen.
Als erstes öffnet ihr eine Powershell mit administrativen Rechten
Nachdem ihr wsl installiert habt müsst ihr eine linux distro wählen. Eine Liste könnt ihr euch mit wsl --list --online anzeigen. Im Beispiel verwende ich Debian.
Danach müsst ihr nur noch Docker selbst installieren, dies findet ihr hier Bitte melden Sie sich an, um diesen Link zu sehen.
Nach dem installieren startet ihr docker.
Meine Ordnerstruktur meines arbeits ordners sieht wie folgt aus.
Bitte melden Sie sich an, um diesen Link zu sehen.
Ihr erstellt eine Datei namens docker-compose.yaml und fügt den folgenden Quellcode ein.
- version: '3.1'
- services:
- db:
- image: mysql:5.7-debian # Bestimmt Version & Distro auf dem MySQL läuft https://hub.docker.com/_/mysql
- restart: always
- environment:
- MYSQL_ROOT_PASSWORD: admin # Setzt das Root password
- ports:
- - "3306:3306"
- volumes:
- - "./dump:/docker-entrypoint-initdb.d" # lädt automatisch die .sql files hoch aus dem dump ordner
- - db-vol:/var/lib/mysql # persistiert die Datenbank
- volumes:
- db-vol:
Nun können wir den container starten, indem ihr ein Terminal im gleichen verzeichnis wie die docker-compose.yaml öfnnet und folgenden befehl ausführt.
Wenn ihr folgenden output im terminal seht, ist der MySQL server gestartet und bereit unter 127.0.0.1:3306
Bitte melden Sie sich an, um diesen Link zu sehen.
Um den MySQL server wieder herunterzufahren, könnt ihr entweder STRG+C drücken in dem Terminal, in dem ihr es durch docker-compose up gestartet habt oder folgenden befehl verwendet.
MfG
Zynko