Zum Inhalt

Bereitstellung von Bifolk aus der GitLab Container Registry

Diese Anleitung erklärt, wie Sie Bifolk mit vorgefertigten Docker-Images aus der GitLab Container Registry bereitstellen.

Voraussetzungen

  • Docker Engine 20.10+ und Docker Compose 2.0+
  • Git (zum Klonen des Repositories für Konfigurationsdateien)
  • Zugriff auf die GitLab Container Registry (öffentliche Images erfordern keine Authentifizierung; private Images erfordern ein Token)

Übersicht

Anstatt Docker-Images lokal zu bauen, können Sie vorgefertigte Images verwenden, die in der GitLab Container Registry veröffentlicht werden. Dieser Ansatz:

  • Spart Build-Zeit - Kein Bauen von Images auf Ihrem Bereitstellungsserver nötig
  • Gewährleistet konsistente Bereitstellungen - Dieselben getesteten Images über Umgebungen hinweg verwenden
  • Vereinfacht Aktualisierungen - Neue Versionen mit einem einzigen Befehl abrufen
  • Verwendet verifizierte Images - Images werden über CI/CD-Pipeline gebaut und getestet

Schnellstart

1. Repository klonen (für Konfigurationsdateien)

git clone https://code.wdmt.de/bifolk/bifolk.git
cd bifolk

2. Secrets konfigurieren

Kopieren Sie die Beispiel-Secrets und konfigurieren Sie sie mit Ihren tatsächlichen Werten:

cp -r secrets.example secrets

Bearbeiten Sie Dateien in secrets/: - secret_key.txt - Django SECRET_KEY (generieren mit: python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())") - db_password.txt - PostgreSQL-Passwort - email_password.txt - SMTP-Passwort für E-Mail-Funktionalität

Richtige Berechtigungen setzen:

bash scripts/bifolk_set_permissions.sh

3. Docker Compose einrichten

Beispielkonfiguration kopieren:

cp docker-compose.example.yml docker-compose.yml

docker-compose.yml bearbeiten und die Image-URLs setzen:

services:
  bifolk-app:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:latest
  bifolk-docs:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-docs:latest

4. Umgebung konfigurieren (Optional)

Erstellen Sie eine .env-Datei, wenn Sie Standardeinstellungen überschreiben müssen:

# Beispiel-Umgebungsdatei kopieren
cp .env.example .env

.env bearbeiten, um Einstellungen anzupassen wie: - DJANGO_DEBUG=False (wichtig für Produktion!) - DJANGO_ALLOWED_HOSTS=ihre-domain.de - EMAIL_HOST=smtp.example.com - Datenbankeinstellungen

5. Abrufen und starten

# Neueste Images aus Registry abrufen
docker-compose pull

# Dienste im Hintergrund starten
docker-compose up -d

# Logs anzeigen
docker-compose logs -f

6. Bereitstellung verifizieren

Container-Status prüfen:

docker-compose ps

Anwendungslogs anzeigen:

docker-compose logs -f bifolk-app

Auf die Anwendung zugreifen: - Anwendung: http://localhost:8000 - Dokumentation: http://localhost:8001

Image-Tags

Images werden mit mehreren Tags veröffentlicht:

Tag Beschreibung Anwendungsfall
stable Neueste versionierte Freigabe (gleich wie neueste v*..) Produktion (empfohlen)
latest Neuester Build vom next-release-Branch Produktion
v0.x.x Spezifische Version (semantische Versionierung) Produktion (fixierte Version)

Tag-Beispiele

# Stabile Freigabe verwenden (empfohlen für Produktion)
image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:stable

# Neuestes vom next-release-Branch verwenden
image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:latest

# Auf spezifische Version fixieren
image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:v0.1.0

Produktionsbereitstellungs-Empfehlungen

1. Stabile oder spezifische Versions-Tags verwenden

Für Produktion verwenden Sie das stable-Tag oder spezifische Versions-Tags anstelle von latest:

services:
  bifolk-app:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:stable  # Immer neueste Freigabe
  bifolk-docs:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-docs:stable

Oder auf eine spezifische Version für maximale Kontrolle fixieren:

services:
  bifolk-app:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:v0.1.0  # Auf spezifische Version fixieren
  bifolk-docs:
    image: registry.code.wdmt.de/bifolk/bifolk/bifolk-docs:v0.1.0

2. Debug-Modus deaktivieren

Stellen Sie sicher, dass DJANGO_DEBUG=False in Produktion:

environment:
  - DJANGO_DEBUG=False

3. Allowed Hosts konfigurieren

Richtige erlaubte Hosts für Ihre Domain setzen:

environment:
  - DJANGO_ALLOWED_HOSTS=ihredomain.de,www.ihredomain.de

4. Starke Secrets verwenden

  • Starken SECRET_KEY generieren
  • Komplexe Datenbankpasswörter verwenden
  • E-Mail-Zugangsdaten sichern

5. E-Mail konfigurieren

Richtige SMTP-Einstellungen für E-Mail-Funktionalität einrichten:

environment:
  - EMAIL_HOST=smtp.example.com
  - EMAIL_PORT=587
  - EMAIL_USE_TLS=True
  - EMAIL_USER=ihre-email@example.com
  - DEFAULT_FROM_EMAIL=noreply@ihredomain.de

6. Reverse-Proxy verwenden

Für Produktion einen Reverse-Proxy (Nginx, Traefik) verwenden für: - SSL/TLS-Terminierung - Lastverteilung - Bereitstellung statischer Dateien - Request-Filterung

Auf neue Versionen aktualisieren

Methode 1: Auf neueste Freigabe aktualisieren

# Neueste Images abrufen
docker-compose pull

# Container mit neuen Images neu erstellen
docker-compose up -d

# Logs zur Verifizierung anzeigen
docker-compose logs -f bifolk-app

Methode 2: Auf spezifische Version aktualisieren

  1. docker-compose.yml bearbeiten und Image-Tags ändern:
image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:v0.2.0
  1. Abrufen und neu starten:
docker-compose pull
docker-compose up -d

Methode 3: Rollback

Um auf eine frühere Version zurückzukehren:

  1. docker-compose.yml mit dem vorherigen Versions-Tag bearbeiten:
image: registry.code.wdmt.de/bifolk/bifolk/bifolk-app:v0.1.0
  1. Abrufen und neu starten:
docker-compose pull
docker-compose up -d

Authentifizierung für private Images

Wenn die Registry privat ist, müssen Sie sich bei der GitLab Container Registry authentifizieren.

Personal Access Token (PAT) erstellen

  1. Gehen Sie zu GitLab → Benutzereinstellungen → Access Tokens
  2. Klicken Sie auf "Neues Token hinzufügen"
  3. Berechtigung auswählen: read_registry
  4. Token generieren und kopieren

Bei Registry anmelden

echo IHR_GITLAB_TOKEN | docker login registry.code.wdmt.de -u IHR_BENUTZERNAME --password-stdin

Nach der Authentifizierung können Sie private Images normal abrufen.

Fehlerbehebung

Image-Abruf fehlgeschlagen

Problem: Error response from daemon: manifest for registry.code.wdmt.de/... not found

Lösungen: - Verifizieren, dass der Image-Tag in der Registry existiert (GitLab Container Registry-Seite prüfen) - Sicherstellen, dass die Image-URL korrekt ist - Wenn die Registry privat ist, mit PAT authentifizieren (siehe Authentifizierungs-Abschnitt) - Internetverbindung prüfen

Container startet nicht

Problem: Container beendet sich sofort nach dem Start

Lösungen:

  1. Logs prüfen:

    docker-compose logs bifolk-app
    

  2. Verifizieren, dass Secrets konfiguriert sind:

    ls -la secrets/
    

  3. Sicherstellen, dass Datenbank bereit ist:

    docker-compose logs bifolk-db
    

Datenbankverbindungsprobleme

Problem: could not connect to server: Connection refused

Lösungen:

  1. Verifizieren, dass DB_HOST auf bifolk-db (den Dienstnamen) gesetzt ist
  2. Prüfen, ob Datenbankcontainer läuft:

    docker-compose ps bifolk-db
    

  3. Datenbanklogs überprüfen:

    docker-compose logs bifolk-db
    


Siehe auch