Files
bf-infra/docs/portainer-upgrade-20260828/rollback-runbook.md
Christoph Emsenhuber 3562e19e47 Portainer 2.40 → 2.42.0 Bump + portainer-mcp projektspezifisch
Portainer-Server (pve LXC 400): 2.40.0 → 2.42.0 via Image-Swap mit Volume-Erhalt.
Pre-Upgrade-Snapshot: docker commit :2.40.0-preupgrade-20260828 (Rollback 7 d
verfügbar) + Settings/Stacks/Endpoints-JSON-Dump (40 KB, 31 Stacks, 4 Endpoints).
Instance-ID + API-Token nach Bump identisch — kein Re-Auth, kein Settings-Verlust.

portainer-mcp: offizielles PyPI-Paket mcp-portainer~=2.42.0 (193 Tools), nur
in bf-infra/opencode.jsonc, via uvx-stdio. Tool-Gate: get_guidance() einmal pro
Session zwingend vor erstem Read. Andere Projekte unberührt.

Korrekturen ggü. Handoff 2026-08-28 README:
- mcp-portainer PyPI bis 2.42.6, Docker-Hub portainer/portainer-ce nur bis 2.42.0
  (unterschiedliche Versionierungspfade).
- mcp/portainer/README.md ist auf 2.42.6 formuliert und sollte nachgezogen werden.

Bestand: mcp/INVENTORY.md portainer-mcp ⛔→🟢 + Header MCP-WARP-Direktive ergänzt.
.mcp.json (war getrackt aus Commit 3426366) entfernt: opencode nutzt opencode.jsonc,
nicht .mcp.json — Claude-Code-Konvention hier irrelevant.
2026-08-28 21:17:52 +02:00

2.2 KiB

Portainer 2.40.0 → 2.42.6 — Rollback-Runbook (2026-08-28)

Voraussetzungen

  • pve .100, dort LXC 400 (Docker-LXC auf vlan20)
  • Portainer-Container läuft mit den unten dokumentierten Flags
  • Pre-Upgrade-Image-Tag portainer/portainer-ce:2.40.0-preupgrade-20260828 ist vorhanden

Was hier dokumentiert ist

  1. Image-Tag mit dem Stand VOR dem Bump (für 1-Befehl-Rollback).
  2. Runflags des Containers (docker inspect-Auszug).
  3. Volume-Mount /var/lib/docker/volumes/portainer_data/_data → /data (Portainer-Persistenz: alle Stacks, Endpoint-Configs, Users, API-Tokens). Volume bleibt unangetastet beim Image-Swap — Settings überleben den Bump.

Runflags (aus docker inspect portainer --format '{{json .HostConfig}}')

Property Wert
Image portainer/portainer-ce:2.42.6 (Bump) bzw. :2.40.0-preupgrade-20260828 (Rollback)
Restart always
Network bridge (default), MACVLAN über das Compose-Netzwerk
Privileged false
Ports 8000/tcp → 8000, 9443/tcp → 9443
Mounts /var/run/docker.sock → /var/run/docker.sock (Pflicht), /var/lib/docker/volumes/portainer_data/_data → /data

Originaler Run-Befehl (rekonstruiert)

docker run -d \
  --name portainer \
  --restart always \
  -p 8000:8000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes/portainer_data/_data:/data \
  portainer/portainer-ce:2.40.0

Rollback-Schritte (Bump macht Probleme)

# 1. Auf pve (LXC 400)
ssh root@10.40.20.100 "pct exec 400 -- bash -c '
  docker stop portainer
  docker rm portainer
  docker run -d \\
    --name portainer \\
    --restart always \\
    -p 8000:8000 -p 9443:9443 \\
    -v /var/run/docker.sock:/var/run/docker.sock \\
    -v /var/lib/docker/volumes/portainer_data/_data:/data \\
    portainer/portainer-ce:2.40.0-preupgrade-20260828
'"
# 2. API-Token ist volume-gebunden → bleibt gültig, keine Re-Auth.
# 3. Verifikation: ein curl gegen die Settings-API reicht.

Cleanup nach erfolgreichem Bump

Nach ≥7 Tagen Stabilität den :preupgrade-20260828-Tag löschen:

ssh root@10.40.20.100 "pct exec 400 -- docker rmi portainer/portainer-ce:2.40.0-preupgrade-20260828"