No description
etc/ssh | ||
script | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
README.md | ||
sqlproxy_setup.sh |
Starten des Reverse-Proxies
Der Proxy kann über docker compose gestartet werden
docker compose up -d
Hinzufügen von Docker Containern
Container werden automatisch vom reverse proxy/host manager aufgegriffen wenn sie:
- Die Umgebungsvariable
VIRTUAL_HOST
gesetzt haben. - Im gleichen Docker-Netzwek (Default:
proxy
) sind.
Optional kann über die Umgebungsvariable VIRTUAL_PORT
der gebundene Port gesetzt werden (Default: 80)
Minimale Beispiel-Konfiguration
In diesem Beispiel sind zwei Container, nur der app
Kontainer ist teil des proxy Netzwerks, der db
Container ist nicht im proxy Netzwerk.
version: "3.4"
services:
db:
image: mariadb:10.4
environment:
MYSQL_DATABASE: db_name
MYSQL_USER: db_user
MYSQL_PASSWORD: db_user_pass
MYSQL_ROOT_PASSWORD: db_root_pass
restart: unless-stopped
volumes:
- db-data:/var/lib/mysql
app:
image: some_base/image
depends_on:
- db
environment:
DB_TYPE: mysql
DB_HOST: db
DB_PORT: 3306
DB_USER: db_user
DB_PASS: db_user_pass
DB_NAME: db_name
VIRTUAL_HOST: app_host
VIRTUAL_PORT: 3000
restart: unless-stopped
networks:
- proxy
networks:
proxy:
name: proxy
external: true
Alternativ kann auch das default netzwerk Überschrieben werden. Dadurch sind alle Container Teil des Netzwerks.
networks:
default:
name: proxy
external: true
SQL Proxy
Initiales Setup
Öffne ein Terminal und führe die sqlproxy_setup.sh
Datei aus.
Das Script:
- Installiert den
myssh
befehl nach$HOME/bin
und fügt diesen ggf zur PATH variable hinzu - Erstellt SSH Keys für den SSH Docker Container (wenn diese nicht bereits existieren)
- Erstellt und Konfiguriert einen Client SSH Key, dessen public Key wird dem SSH Docker Container hinzugefügt
Hinzufügen von DB Docker Containern
Container werden automatisch vom reverse proxy/host manager aufgegriffen wenn sie:
- Die Umgebungsvariable
DB_VHOST
gesetzt haben. - Im gleichen Docker-Netzwek (Default:
proxy
) sind.
myssh cli
Der SQL Proxy Client hat folgende Optionen:
ls: Gibt eine Liste an verfügbaren DB Hosts zurück
connect $DB_HOST [-u $USERNAME ] [-p $PASSWORD]: Erstellt einen Tunnel zum DB Host, wenn Nutzername und Passwort angegeben werden wird eine DB Anwendung geöffnet
disconnect: schließt die SSH Multiplex Session und damit auch alle aktuellen Verbindungen