FRGD - GIT und Docker Konfiguration
Verwendete Tools:
- GIT Server
- git-flow
- docker, docker-compose
- DNSMASQ + jwilder/nginx-proxy
- node / npm / gulp
Unsere Projekte sind in der Regel Dockerbasierte Container mit docker-compose Konfiguration. Es gibt hierbei mindestens 2 Konfiguration für die lokale Entwicklung (docker-compose.override.yml) und für unseren Staging Server (docker-compose.staging.yml) Läuft das Hosting auf unseren Servern gibt es auch noch eine Konfiguration für die Live Umgebung (docker-compose.production.yml)
Gespeichert sind unsere Projekte auf unserem eigenen GIT-Server Unsere Projekte sind normalerweise mittels git-flow initialisiert. D.h. wir arbeiten innerhalb des "developer" Branches
Projekte lassen sich zum testen auf unseren Staging Server pushen mittels
git push origin develop:staging
Unser Staging Server holt sich dann das aktuelle Projekt vom GIT-Server und baut den Docker-Container komplett neu.
-
SCSS / JS Build Skripte Zum dynamischen bauen des CSS verwenden wir in der Regel Gulp Tasks Diese laufen auch innerhalb der Container und lassen sich wie folgt starten:
docker-compose exec web npm run buildoderdocker-compose exec web npm run watch -
Datenbank Handling Für den Import/Export der Datenbank gibt es zwei Skripte im /bin Ordner welche in den Dockercontainer kopiert werden. Anwendung:
docker-compose exec web dbimport/docker-compose exec web dbexportVor einem Push ins GIT sollte der dbexport vorher einmal ausgeführt werden
-
Proxy Konfiguration für lokale Entwicklung Unsere lokalen Docker Container nutzen die Domain Endung .dkr Hierfür haben wir lokal den DNSMASQ installiert [https://allanphilipbarku.medium.com/setup-automatic-local-domains-with-dnsmasq-on-macos-ventura-b4cd460d8cb3] Zusätzlich nutzen wir dann den Jwilder/Nginx-Proxy [https://hub.docker.com/r/jwilder/nginx-proxy/] Den starte ich i.d.R. im Terminal:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro -v /Users/sascha/docker_nginx_proxy.conf:/etc/nginx/conf.d/my_proxy.conf jwilder/nginx-proxy