Portainer – docker-compose.yml

Portainer läuft ebenfalls in einem Container, dessen Aufbau in der unten folgenden Compose-Datei (docker-compose.yml) eingetragen wurde.

Das Kennwort für den Benutzer admin an der Oberfläche kann mit dem Befehlt htpasswd erstellt werden.
Da lokal kein Apache mit dem Tool htpasswd installiert ist, rufe ich das Tool ebenfalls über docker auf:

docker run --rm httpd:2.4-alpine htpasswd -nbB admin password| cut -d ":" -f 2
$2y$05$k44aM4mO58fJNZpHg3pOFOhs3zsJlRN9s3k0A/vqQ.YyFoiq.v4mW

Die generierte Zeichenkette kann als Option („–admin-password“) in der Compose-Datei eingetragen werden.
Dabei muss man beachten, dass das Sonderzeichen $ (Dollar-Symbol) durch ein zweites Dollar-Symbol escaped werden muss.

docker-compose.yml

version: '3.3'

services:

   portainer:
     image: portainer/portainer
     container_name: portainer
     command: --admin-password $$2y$$05$$k44aM4mO58fJNZpHg3pOFOhs3zsJlRN9s3k0A/vqQ.YyFoiq.v4mW
     volumes:
       - /srv/www/portainer:/data
       - /var/run/docker.sock:/var/run/docker.sock
     ports:
       - 9000:9000

networks:
  default:
    external:
      name: nginx-proxy

Lösung für die Fehlermeldung:

ERROR: Invalid interpolation format for "command" option in service "portainer": "--admin-password $2y$05$k44aM4mO58fJNZpHg3pOFOhs3zsJlRN9s3k0A/vqQ.YyFoiq.v4mW"

Der Fehler kann durch die Verdopplung der Dollar-Zeichnen vermieden werden.