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.
