5

Ich habe ein privates Repository auf DockerHub, die ich versuche, mit ECS bereitzustellen. Ich bekomme immer folgende Fehlermeldung:Amazon ECS private DockerHub Repo: Kann nicht zur Verfügung gestellt Docker Anmeldeinformationen Fehler

Unable to decode provided docker credentials module="ecs credentials" type="dockercfg" 

oder wenn ich mit Typ-Docker versuchen:

Unable to decode provided docker credentials module="ecs credentials" type="docker" 

ich alle Möglichkeiten auf den ECS-Entwickler-Foren erwähnt versucht haben.

Ich habe versucht:

ECS_ENGINE_AUTH_TYPE=dockercfg 
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"auth":"<token>","email":"<email>"}}' 

ich auch versucht:

ECS_ENGINE_AUTH_TYPE=docker 
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"username":"<username>","password":"<password>","email":"<email>"}}' 

Und auch (wegen der docs bei https://godoc.org/github.com/aws/amazon-ecs-agent/agent/engine/dockerauth):

ECS_ENGINE_AUTH_TYPE=docker 
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/<username>":{"username":"<username>","password":"<password>","email":"<email>"}}' 

Ich habe auch versucht, ohne die '' und mit "" um den JSON .. gleichen Effekt. Ich bekomme immer den gleichen Fehler.

Ich sollte hinzufügen Ich bekomme ecs.config aus einem S3-Container, der funktioniert. Ich habe die Datei auch manuell eingetippt, falls beim Herunterladen der Datei eine zweifelhafte Formatierung auftritt (obwohl ich nicht weiß, wie dies der Fall sein kann, da die S3-Datei als Byte-Stream kommt).

Wenn ich in die Instanz SSH und wie folgt vor:

docker login --username=<username> --password=<password> --email=<email> 

dann kann ich erfolgreich das Bild ziehen: docker pull A/B:latest

Aber auch nachdem ich in log (und daher Docker erzeugt die ~/.docker/config.json Datei), bekomme ich immer noch den gleichen Fehler von ECS.

Ich sollte alle Operationen erwähnen in der ecs.config Datei geändert wurden wie folgt durchgeführt:

  1. ändern Anzahl von Aufgaben auf 0
  2. Warten
  3. sudo stop ecs
  4. ändern Konfigurationsdatei zu beenden
  5. sudo start ecs
  6. Ändern Sie die Anzahl der Aufgaben auf 1

Repeat ...

Es ist immer sehr frustrierend .. Wie sollte diese Arbeit oder wie hat es, da die Änderungen in der Dokumentation geschrieben wurde?

Jede Hilfe wäre willkommen.

EDIT

Ich versuchte auch in der JSON-Konfigurationsdatei in /etc/ecs/ecs.config die Docker Auth einstellen.json:

{ 
     "EngineAuthType": "docker", 
     "EngineAuthData": { 
       "https://index.docker.io/v1/": { 
         "username": "<me>", 
         "password": "<password>", 
         "email": "<email>" 
       } 
     } 
} 

Die JSON-Konfiguration hierfür ist hier beschrieben: https://godoc.org/github.com/aws/amazon-ecs-agent/agent/config. Es ist auch hier in den Code-Kommentaren erwähnt: https://github.com/aws/amazon-ecs-agent/blob/b197eddd9d5272eeac7dddaa2a84cc4c85522354/agent/engine/dockerauth/doc.go

Genauer gesagt:

These keys may be set by either setting the environment variables "ECS_ENGINE_AUTH_TYPE" and "ECS_ENGINE_AUTH_DATA" or by setting the keys "EngineAuthData" and "EngineAuthType" in the JSON configuration file located at the configured "ECS_AGENT_CONFIG_FILE_PATH" (see http://godoc.org/github.com/aws/amazon-ecs-agent/agent/config)

Dies ist wieder die gleichen Fehler zu geben ...

Antwort

5

Nachdem er einige Zeit mit der Suche durch den Code der Ausgaben ECS-Agent (https://github.com/aws/amazon-ecs-agent) Ich erkannte, wo das Problem liegt. Das Problem ist im E-Mail-Feld, das entfernt werden sollte!

Also, nur rekapitulieren, wie dies zu tun:

Sie müssen hier die Anweisungen befolgen: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html.

Alle Beispiele dort enthalten jedoch das E-Mail-Feld.

Die ecs.config sollte wie folgt aussehen:

ECS_ENGINE_AUTH_TYPE=dockercfg 
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"<your auth token>"}} 

Um die ecs.config von einem S3-Container zu laden, wenn die Instanzen erstellt werden, folgen diese: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html, vor allem die „So speichern Sie eine Datei ecs.config in Amazon S3“ und "So laden Sie eine ecs.config-Datei von Amazon S3 beim Start" Überschriften.

Verwandte Themen