Update Docker Registry URLs to HTTPS endpoint (registry.michaelschiemer.de)

- Replace git.michaelschiemer.de:5000 (HTTP) with registry.michaelschiemer.de (HTTPS)
- Update all Ansible playbooks and configuration files
- Update CI/CD workflows to use HTTPS registry endpoint
- Update Docker Compose files with new registry URL
- Update documentation and scripts

Benefits:
- Secure HTTPS connection (no insecure registry config needed)
- Consistent use of HTTPS endpoint via Traefik
- Better security practices for production deployment
This commit is contained in:
2025-10-31 14:35:39 +01:00
parent 82fb65eb00
commit c087d372c2
24 changed files with 1341 additions and 217 deletions

View File

@@ -43,9 +43,9 @@ CI/CD Pipeline (Gitea Actions)
```yaml
- Docker Image Build (Dockerfile.production)
- Image mit Tags pushen:
- git.michaelschiemer.de:5000/framework:latest
- git.michaelschiemer.de:5000/framework:<tag>
- git.michaelschiemer.de:5000/framework:git-<short-sha>
- registry.michaelschiemer.de/framework:latest
- registry.michaelschiemer.de/framework:<tag>
- registry.michaelschiemer.de/framework:git-<short-sha>
```
#### Job 3: Deploy (Ansible)
@@ -121,7 +121,7 @@ docker compose -f ~/deployment/stacks/application/docker-compose.yml \
**2. Docker Registry Login**
```bash
# Login zur privaten Registry mit Credentials
docker login git.michaelschiemer.de:5000 \
docker login registry.michaelschiemer.de \
-u <registry-username> \
-p <registry-password>
```
@@ -129,10 +129,10 @@ docker login git.michaelschiemer.de:5000 \
**3. Neues Image Pullen**
```bash
# Pullt das neue Image von der Registry
docker pull git.michaelschiemer.de:5000/framework:<tag>
docker pull registry.michaelschiemer.de/framework:<tag>
# Beispiel:
# git.michaelschiemer.de:5000/framework:abc1234-1696234567
# registry.michaelschiemer.de/framework:abc1234-1696234567
```
**4. docker-compose.yml aktualisieren**
@@ -143,12 +143,12 @@ docker pull git.michaelschiemer.de:5000/framework:<tag>
# Vorher:
services:
app:
image: git.michaelschiemer.de:5000/framework:latest
image: registry.michaelschiemer.de/framework:latest
# Nachher (wenn image_tag != 'latest'):
services:
app:
image: git.michaelschiemer.de:5000/framework:<tag>
image: registry.michaelschiemer.de/framework:<tag>
```
**Regex-Replace:**
@@ -158,13 +158,13 @@ replace: '\1{{ app_image }}:{{ image_tag }}'
```
**Betroffene Services (werden alle aktualisiert):**
- `app` (PHP-FPM) - Zeile 6: `image: git.michaelschiemer.de:5000/framework:latest`
- `queue-worker` (Queue Worker) - Zeile 120: `image: git.michaelschiemer.de:5000/framework:latest`
- `scheduler` (Scheduler) - Zeile 165: `image: git.michaelschiemer.de:5000/framework:latest`
- `app` (PHP-FPM) - Zeile 6: `image: registry.michaelschiemer.de/framework:latest`
- `queue-worker` (Queue Worker) - Zeile 120: `image: registry.michaelschiemer.de/framework:latest`
- `scheduler` (Scheduler) - Zeile 165: `image: registry.michaelschiemer.de/framework:latest`
**Hinweis:**
- Alle drei Services verwenden das gleiche Image, daher werden alle mit dem neuen Tag aktualisiert
- Der Regex matched **alle Zeilen** die mit `image: git.michaelschiemer.de:5000/framework:` beginnen
- Der Regex matched **alle Zeilen** die mit `image: registry.michaelschiemer.de/framework:` beginnen
- `nginx` und `redis` bleiben unverändert (verwenden andere Images)
**5. Application Stack neu starten**
@@ -216,7 +216,7 @@ docker compose ps --format json | \
Deployment Timestamp: 2025-10-31T02:35:04Z
Git Commit: abc1234...
Image Tag: abc1234-1696234567
Deployed Image: git.michaelschiemer.de:5000/framework:abc1234-1696234567
Deployed Image: registry.michaelschiemer.de/framework:abc1234-1696234567
Image Pull: SUCCESS
Stack Deploy: UPDATED
Health Status: All services healthy
@@ -238,7 +238,7 @@ Der Application Stack besteht aus mehreren Services:
#### Services im Stack
**1. `app` (PHP-FPM Application)**
- Image: `git.michaelschiemer.de:5000/framework:<tag>`
- Image: `registry.michaelschiemer.de/framework:<tag>`
- Container: `app`
- Health Check: `php-fpm-healthcheck`
- Netzwerk: `app-internal`
@@ -259,7 +259,7 @@ Der Application Stack besteht aus mehreren Services:
- Netzwerk: `app-internal`
**4. `queue-worker` (Background Jobs)**
- Image: `git.michaelschiemer.de:5000/framework:<tag>` (gleiches wie app)
- Image: `registry.michaelschiemer.de/framework:<tag>` (gleiches wie app)
- Container: `queue-worker`
- Health Check: `pgrep -f 'queue:work'`
- Netzwerk: `app-internal`
@@ -267,7 +267,7 @@ Der Application Stack besteht aus mehreren Services:
- Abhängigkeiten: `app`, `redis`
**5. `scheduler` (Cron Jobs)**
- Image: `git.michaelschiemer.de:5000/framework:<tag>` (gleiches wie app)
- Image: `registry.michaelschiemer.de/framework:<tag>` (gleiches wie app)
- Container: `scheduler`
- Health Check: `pgrep -f 'scheduler:run'`
- Netzwerk: `app-internal`
@@ -307,8 +307,8 @@ Der Application Stack besteht aus mehreren Services:
### Inventory-Variablen (`inventory/production.yml`)
```yaml
app_image: "git.michaelschiemer.de:5000/framework"
docker_registry_url: "git.michaelschiemer.de:5000"
app_image: "registry.michaelschiemer.de/framework"
docker_registry_url: "registry.michaelschiemer.de"
backups_path: "~/deployment/backups"
max_rollback_versions: 5
deploy_user_home: "~/deployment"
@@ -339,9 +339,9 @@ docker_registry_password: "<from-secret>"
**2. Image wird gebaut und gepusht:**
```bash
docker buildx build \
--tag git.michaelschiemer.de:5000/framework:latest \
--tag git.michaelschiemer.de:5000/framework:abc1234-1696234567 \
--tag git.michaelschiemer.de:5000/framework:git-abc1234 \
--tag registry.michaelschiemer.de/framework:latest \
--tag registry.michaelschiemer.de/framework:abc1234-1696234567 \
--tag registry.michaelschiemer.de/framework:git-abc1234 \
--push \
.
```
@@ -361,14 +361,14 @@ ansible-playbook -i inventory/production.yml \
mkdir -p ~/deployment/backups/2025-10-31T02-35-04Z
# 2. Registry Login
docker login git.michaelschiemer.de:5000 -u admin -p <password>
docker login registry.michaelschiemer.de -u admin -p <password>
# 3. Image Pullen
docker pull git.michaelschiemer.de:5000/framework:abc1234-1696234567
docker pull registry.michaelschiemer.de/framework:abc1234-1696234567
# 4. docker-compose.yml aktualisieren
# Vorher: image: git.michaelschiemer.de:5000/framework:latest
# Nachher: image: git.michaelschiemer.de:5000/framework:abc1234-1696234567
# Vorher: image: registry.michaelschiemer.de/framework:latest
# Nachher: image: registry.michaelschiemer.de/framework:abc1234-1696234567
# 5. Stack neu starten
cd ~/deployment/stacks/application
@@ -392,7 +392,7 @@ cat > ~/deployment/backups/2025-10-31T02-35-04Z/deployment_metadata.txt <<EOF
Deployment Timestamp: 2025-10-31T02:35:04Z
Git Commit: abc1234567890...
Image Tag: abc1234-1696234567
Deployed Image: git.michaelschiemer.de:5000/framework:abc1234-1696234567
Deployed Image: registry.michaelschiemer.de/framework:abc1234-1696234567
Image Pull: SUCCESS
Stack Deploy: UPDATED
Health Status: All services healthy
@@ -408,7 +408,7 @@ EOF
**Wichtig:** Das Playbook aktualisiert die `docker-compose.yml` Datei **direkt auf dem Server**!
- Die Datei wird mit `replace` Modul geändert
- Alle Services mit dem Image `git.michaelschiemer.de:5000/framework:*` werden aktualisiert
- Alle Services mit dem Image `registry.michaelschiemer.de/framework:*` werden aktualisiert
- Das bedeutet: `app`, `queue-worker`, und `scheduler` bekommen alle das neue Image
### 2. Force-Recreate
@@ -520,17 +520,17 @@ docker compose ps
```bash
# Registry-Login testen
docker login git.michaelschiemer.de:5000 -u admin -p <password>
docker login registry.michaelschiemer.de -u admin -p <password>
# Image manuell pullen
docker pull git.michaelschiemer.de:5000/framework:<tag>
docker pull registry.michaelschiemer.de/framework:<tag>
```
### docker-compose.yml wurde nicht aktualisiert
```bash
# Prüfe ob Regex korrekt ist
grep -E "image:\s+git.michaelschiemer.de:5000/framework" \
grep -E "image:\s+registry.michaelschiemer.de/framework" \
~/deployment/stacks/application/docker-compose.yml
# Prüfe Backup für vorherige Version