feat: Integrate container registry support and Makefile enhancements
This commit integrates support for pushing and pulling Docker images from a container registry and enhances the Makefile for a more flexible development workflow.
Key changes include:
- **Container Registry Configuration:** Added and variables to the Makefile and updated and targets to correctly tag and push images to the configured registry.
- **Docker Compose Registry Integration:** Modified to use the image from the registry by default instead of building locally.
- **Makefile Workflow Enhancements:**
- Introduced a target (Pulling image git.wlkns.org/stephan/audio-engine-hub:latest from registry...
docker pull git.wlkns.org/stephan/audio-engine-hub:latest) for explicitly downloading images from the registry.
- Modified the target (Starting development environment by pulling image from registry...
export IMAGE_NAME=audio-engine-hub && \
export REGISTRY=git.wlkns.org && \
export USERNAME=stephan && \
export TAG=latest && \
docker compose up -d) to use the registry image.
- Added a target (Starting development environment (local build) on port 8000...) for local development, which explicitly builds the image from source () before starting the service.
- Updated and GNU bash, Version 5.1.16(1)-release (x86_64-pc-linux-gnu)
Diese Shellkommandos sind intern definiert. Geben Sie »help« ein, um diese
Liste zu sehen. Geben Sie »help Name« ein, um die Beschreibung der Funktion
»Name« zu sehen. Geben Sie »info bash« ein, um die vollständige Dokumentation
zu sehen. Geben Sie »man -k« oder »info« ein, um detaillierte Beschreibungen
der Shellkommandos zu sehen.
Ein Stern (*) neben dem Namen kennzeichnet deaktivierte Kommandos.
Jobbezeichnung [&] history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder histor>
(( Ausdruck )) if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ >
. Dateiname [Argumente] jobs [-lnprs] [Jobbezeichnung ...] or jobs -x Kommando [Arg]
: kill [-s Signalname | -n Signalnummer | -Signalname] pid | jobspec ... >
[ Argument... ] let Argument [Argument ...]
[[ Ausdruck ]] local [Option] Name[=Wert] ...
alias [-p] [Name[=Wert] ... ] logout [n]
bg [Jobbezeichnung ...] mapfile [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd]>
bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name]> popd [-n] [+N | -N]
break [n] printf [-v var] Format [Argumente]
builtin [Shell-Kommando [Argument ...]] pushd [-n] [+N | -N | Verzeichnis]
caller [Ausdruck] pwd [-LP]
case Wort in [Muster [| Muster]...) Kommandos ;;]... esac read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N Z>
cd [-L|[-P [-e]] [-@]] [Verzeichnis] readarray [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] >
command [-pVv] Kommando [Argument ...] readonly [-aAf] [Name[=Wert] ...] oder readonly -p
compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlis> return [n]
complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpa> select Name [in Wortliste ... ;] do Kommandos; done
compopt [-o|+o Option] [-DEI] [Name ...] set [-abefhkmnptuvxBCHP] [-o Option] [--] [Argument ...]
continue [n] shift [n]
coproc [Name] Kommando [Umleitungen] shopt [-pqsu] [-o] [Optionsname ...]
declare [-aAfFgiIlnrtux] [-p] [Name[=Wert] …] source Dateiname [Argumente]
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [Jobbezeichnung ... | pid ...] test [Ausdruck]
echo [-neE] [Argument ...] time [-p] Pipeline
enable [-a] [-dnps] [-f Dateiname] [Name ...] times
eval [Argument ...] trap [-lp] [[Argument] Signalbezeichnung ...]
exec [-cl] [-a Name] [Befehl [Argument …]] [Umleitung …] true
exit [n] type [-afptP] Name [Name ...]
export [-fn] [Name[=Wert] ...] oder export -p typeset [-aAfFgiIlnrtux] [-p] Name[=Wert] …
false ulimit [-SHabcdefiklmnpqrstuvxPT] [Grenze]
fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] [Kom> umask [-p] [-S] [Modus]
fg [Jobbezeichnung] unalias [-a] Name [Name ...]
for Name [in Wortliste ... ] ; do Kommandos; done unset [-f] [-v] [-n] [NAME ...]
for (( Ausdruck1; Ausdruck2; Ausdruck3 )); do Kommandos; done until Kommandos; do Kommandos; done
function Name { Kommandos ; } oder Name () { Kommandos ; } variables - Namen und Bedeutung einiger Shell-Variablen
getopts optstring name [arg ...] wait [-fn] [-p var] [id ...]
hash [-lr] [-p Pfadname] [-dt] [Name ...] while Kommandos; do Kommandos; done
help [-dms] [Muster ...] { Kommandos ; } targets accordingly.
- **Session Resume Update:** Updated to document the container registry integration.
This commit is contained in:
48
Makefile
48
Makefile
@ -3,11 +3,10 @@ SHELL := /bin/bash
|
||||
# --- Configuration ---
|
||||
IMAGE_NAME := audio-engine-hub
|
||||
TAG := latest
|
||||
# Default internal application port (exposed to Traefik)
|
||||
REGISTRY := git.wlkns.org
|
||||
USERNAME := stephan
|
||||
# Default internal application port
|
||||
PORT := 8000
|
||||
# Traefik's external entrypoints
|
||||
TRAEFIK_WEB_PORT := 80
|
||||
TRAEFIK_DASHBOARD_PORT := 8080
|
||||
|
||||
# --- Port Checking Functions ---
|
||||
|
||||
@ -67,27 +66,48 @@ shell:
|
||||
|
||||
.PHONY: up
|
||||
up:
|
||||
@echo "Starting development environment by pulling image from registry..."
|
||||
export IMAGE_NAME=$(IMAGE_NAME) && \
|
||||
export REGISTRY=$(REGISTRY) && \
|
||||
export USERNAME=$(USERNAME) && \
|
||||
export TAG=$(TAG) && \
|
||||
docker compose up -d
|
||||
|
||||
.PHONY: dev-up
|
||||
dev-up:
|
||||
@APP_PORT=$$(bash -c 'port=$${PORT:-8000}; while ss -tulnp | grep -q :$$port; do echo "Port $$port is busy. Checking next..." >&2; ((port++)); done; echo $$port'); \
|
||||
echo "Starting development environment on port $$APP_PORT..."; \
|
||||
export IMAGE_NAME=$(IMAGE_NAME); \
|
||||
echo "Starting development environment (local build) on port $$APP_PORT..."; \
|
||||
export IMAGE_NAME=$(IMAGE_NAME) && \
|
||||
export REGISTRY=$(REGISTRY) && \
|
||||
export USERNAME=$(USERNAME) && \
|
||||
export TAG=$(TAG) && \
|
||||
APP_PORT=$$APP_PORT docker compose up --build -d
|
||||
|
||||
.PHONY: down
|
||||
down:
|
||||
@echo "Stopping development environment with Docker Compose..."
|
||||
export IMAGE_NAME=$(IMAGE_NAME) && docker compose down
|
||||
export IMAGE_NAME=$(IMAGE_NAME) && \
|
||||
export REGISTRY=$(REGISTRY) && \
|
||||
export USERNAME=$(USERNAME) && \
|
||||
export TAG=$(TAG) && \
|
||||
docker compose down
|
||||
|
||||
# --- Image Management ---
|
||||
|
||||
.PHONY: pull
|
||||
pull:
|
||||
@echo "Pulling image $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG) from registry..."
|
||||
docker pull $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG)
|
||||
|
||||
.PHONY: tag
|
||||
tag:
|
||||
@echo "Tagging image $(IMAGE_NAME):$(TAG) as $(REGISTRY)/$(IMAGE_NAME):$(TAG)"
|
||||
docker tag $(IMAGE_NAME):$(TAG) $(REGISTRY)/$(IMAGE_NAME):$(TAG)
|
||||
@echo "Tagging image $(IMAGE_NAME):$(TAG) as $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG)"
|
||||
docker tag $(IMAGE_NAME):$(TAG) $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG)
|
||||
|
||||
.PHONY: push
|
||||
push: tag
|
||||
@echo "Pushing image $(REGISTRY)/$(IMAGE_NAME):$(TAG) to registry..."
|
||||
docker push $(REGISTRY)/$(IMAGE_NAME):$(TAG)
|
||||
push: build tag
|
||||
@echo "Pushing image $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG) to registry..."
|
||||
docker push $(REGISTRY)/$(USERNAME)/$(IMAGE_NAME):$(TAG)
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
@ -133,8 +153,10 @@ help:
|
||||
@echo " stop - Stop and remove the Docker container"
|
||||
@echo " logs - Follow the logs of the container"
|
||||
@echo " shell - Get a shell inside the running container"
|
||||
@echo " up - Start the dev environment with docker-compose"
|
||||
@echo " up - Start the dev environment by pulling image from registry"
|
||||
@echo " dev-up - Start the dev environment by building image locally"
|
||||
@echo " down - Stop the dev environment with docker-compose"
|
||||
@echo " pull - Pull the Docker image from the registry"
|
||||
@echo " tag - Tag the image for a registry"
|
||||
@echo " push - Push the image to a registry (after tagging)"
|
||||
@echo " test - Run the pytest test suite"
|
||||
|
||||
Reference in New Issue
Block a user