Docker Compose

Hauptdatei: /home/revolt/compose.yml

cd /home/revolt
cat compose.yml

Wichtige Docker-Befehle

Status anzeigen

cd /home/revolt

Alle Container

docker compose ps

Alle mit Ports

docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Ports}}"

Einzelner Container

docker inspect dreylo-profile-api

Container starten / stoppen

# Alles starten
docker compose up -d

Nur einen Service neu starten (ohne Rebuild)

docker compose restart web docker compose restart dreylo-profile-api

Container stoppen

docker compose stop web

Container stoppen und entfernen

docker compose down web

Logs anzeigen

# Live-Logs eines Containers
docker logs stoat-api-1 -f --tail 50

Nur Fehler

docker logs stoat-api-1 2>&1 | grep -i error

Profile API Logs

docker logs dreylo-profile-api --tail 20

In Container einloggen

# Shell in Container
docker exec -it stoat-api-1 sh
docker exec -it dreylo-profile-api sh
docker exec -it stoat-database-1 bash

MongoDB Shell

docker exec -it stoat-database-1 mongosh

Container neu bauen

# Mit Cache (schneller)
docker compose up -d dreylo-profile-api

Ohne Cache (wenn Code geändert)

docker compose up -d --build dreylo-profile-api

Image komplett neu bauen (kein Cache)

docker compose build --no-cache dreylo-profile-api docker compose up -d dreylo-profile-api

Aufräumen

# Ungenutzte Images löschen
docker image prune -f

Alles aufräumen (Vorsicht!)

docker system prune -f

Nur ungenutzte Volumes

docker volume prune -f

Docker Networking

# Netzwerk inspizieren
docker network inspect stoat_default | python3 -m json.tool | grep -A3 Name

Container-zu-Container Verbindung testen

docker exec dreylo-profile-api wget -qO- http://api:14702/users/@me 2>&1

ENV-Variablen eines Containers prüfen

docker exec dreylo-profile-api env

compose.yml Struktur (Dreylo-Ergänzungen)

services:
  # ... Stoat-eigene Services ...

dreylo-profile-api:
build: ./dreylo-profile-api
container_name: dreylo-profile-api
restart: always
environment:
PORT: 3010
MONGO_URL: mongodb://database:27017/dreylo-profiles
STOAT_API_URL: http://api:14702
networks:
- default # stoat_default

dreylo-bot:
build: ./dreylo-bot
container_name: dreylo-bot
restart: always
env_file:
- ./dreylo-bot/.env

Hinweis: ENV-Variablen im compose.yml haben Vorrang vor .env Dateien! Immer docker exec container env prüfen.