From f81c1e30bdd632cebeb8480c2af0e3cd96ab9399 Mon Sep 17 00:00:00 2001 From: rene Date: Mon, 13 Apr 2026 19:33:34 +0200 Subject: [PATCH] =?UTF-8?q?Makefile:=20deploy=20nutzt=20Layer-Cache,=20dep?= =?UTF-8?q?loy-clean=20f=C3=BCr=20erzwungenen=20Neuaufbau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 6eb84e9..eae9ef0 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ TAR_EXCLUDE := --exclude='.git' \ --exclude='./*.db' \ --exclude='./.DS_Store' -.PHONY: help deploy sync push restart build stop status \ +.PHONY: help deploy deploy-clean sync push restart build stop status \ logs logs-f shell db dev clean-cache check-ssh # ---------------------------------------------------------- @@ -47,7 +47,8 @@ help: @echo "" @echo " Ban Yaro — verfügbare Befehle:" @echo "" - @echo " make deploy Sync + Rebuild + Neustart (häufigster Befehl)" + @echo " make deploy Sync + Rebuild + Neustart (mit Layer-Cache, häufigster Befehl) + make deploy-clean Wie deploy, aber --no-cache (bei requirements-Änderungen)" @echo " make sync Nur Dateien zur DS übertragen (ohne Rebuild)" @echo " make push Nur Git push zu Forgejo (Backup/Versionierung)" @echo " make restart Container neustarten (kein Rebuild)" @@ -75,7 +76,27 @@ deploy: check-ssh @git push $(GIT_REMOTE) main @echo "→ Sync zu DS..." @COPYFILE_DISABLE=1 tar czf - $(TAR_EXCLUDE) . | ssh $(DS_HOST) "tar xzf - -C $(DS_PATH)/" - @echo "→ Docker rebuild + restart..." + @echo "→ Docker rebuild + restart (mit Layer-Cache)..." + @ssh $(DS_HOST) " \ + cd $(DS_PATH) && \ + $(DOCKER) compose down && \ + $(DOCKER) compose build && \ + $(DOCKER) compose up -d" + @echo "" + @echo " ✓ Deploy fertig. Letzte Logs:" + @ssh $(DS_HOST) "$(DOCKER) logs $(CONTAINER) --tail=15" + +# ---------------------------------------------------------- +# DEPLOY-CLEAN — erzwingt Neuaufbau ohne Layer-Cache +# Nötig wenn: requirements.txt geändert, System-Pakete aktualisiert, +# oder nach einem kaputten Image-State +# ---------------------------------------------------------- +deploy-clean: check-ssh + @echo "→ Git push (Backup)..." + @git push $(GIT_REMOTE) main + @echo "→ Sync zu DS..." + @COPYFILE_DISABLE=1 tar czf - $(TAR_EXCLUDE) . | ssh $(DS_HOST) "tar xzf - -C $(DS_PATH)/" + @echo "→ Docker rebuild (--no-cache) + restart..." @ssh $(DS_HOST) " \ cd $(DS_PATH) && \ $(DOCKER) compose down && \ @@ -113,12 +134,12 @@ restart: check-ssh @echo " ✓ Neugestartet." # ---------------------------------------------------------- -# BUILD — nur Docker-Image neu bauen +# BUILD — nur Docker-Image neu bauen (mit Layer-Cache) # ---------------------------------------------------------- build: check-ssh @ssh $(DS_HOST) " \ cd $(DS_PATH) && \ - $(DOCKER) compose build --no-cache" + $(DOCKER) compose build" # ---------------------------------------------------------- # STOP