2016-05-24 6 views
0

Ich habe festgestellt, dass Sie Vagrant und Docker als Anbieter verwenden können, dass ich denke, ist so cool. Official docWie bekomme ich Docker Bilder aus dem Datenschutz AWS ECR-Repository in Vagrant

Die Dokumentation zeigt einen Abschnitt zum Einrichten privater Repositories. E-Mail, Benutzername, Passwort und auth_server

Ich möchte wissen, ob Vagrant aws ecr get-login Docker Bilder von AWS Registry erhalten unterstützt?

Edited:

Ich versuchte dies:

Vagrant.configure("2") do |config| 
    config.vm.define "mydocker" do |a| 
    a.vm.provider "docker" do |d| 
     d.image = "my-account.dkr.ecr.us-east-1.amazonaws.com/myimage:latest" 

     #Private registry 
     d.email = "[email protected]" 
     d.username = "my-user" 
     d.password = "my-pass" 
     d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com" 

     #Custom Docker Host 
     d.vagrant_machine = "dockerhost" 
     d.vagrant_vagrantfile = "./dockerHost/Vagrantfile" 
    end 
    end 
end 

Dies ist der Ausgangsfehler: (Vagrant versucht, die Anmeldung mit den Parametern zu machen)

Command: "docker" "login" "-u" "my-user" "-p" "my-pass" "my-account.dkr.ecr.us-east-1.amazonaws.com" 

Stderr: Error response from daemon: login attempt to https://my-account.dkr.ecr.us-east-1.amazonaws.com/v2/ failed with status: 401 Unauthorized 

Dank.

+0

haben Sie versucht, eine Vagrantfile mit aws-Konfiguration (access_key_id) einzurichten und verweisen Sie die Vagrantfile mit 'config.vagrant_vagrantfile' –

+0

Ich bearbeitet meine Frage mit einem Beispiel. –

+0

Es sieht aus wie 'aws ecr get-login' ein authorizationToken generieren, um den' docker login' Befehl zu benutzen. –

Antwort

0

Ich fand den Weg mit get-authorization-token Ich weiß nicht, es ist der beste Weg, aber es funktioniert im Moment.

Der Befehl get-authorization-token erstellt ein gültiges Token für 12 Stunden. (Ich denke, das geändert werden kann), und Sie können die official doc

sehen Wenn Sie auf MAC More info sind (does`t Arbeit mit zsh Konsole, bash so verwendet)

aws ecr get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -D | cut -d: -f2 

Es wird das Dekodierungs Passwort drucken und dann in der Vagrantfile:

... 
    #Private registry 
    d.email = "" 
    d.username = "AWS" 
    d.password = "The-decoded-password" 
    d.auth_server = "my-account.dkr.ecr.us-east-1.amazonaws.com" 
... 

Und es funktioniert.

Vielleicht ist es notwendig, ein Passwort zu generieren, die mehr als 12 Stunden lebt = 0)

Ich werde für Kommentare oder Verbesserungen warten.

+0

seit vagrantfile ist ein Ruby-Skript können Sie diesen Befehl in der vagrantfile wie 'mytoken =' 'aws ecr Get-Autorisierung-Token --output - Abfrage authorizationData []. AuthorizationToken | base64 -D | cut -d: -f2'' 'und dann d.password = mytoken; es wird jedes Mal ein neues Token generieren, wenn du einen Vagrant-Befehl ausführst (nicht sicher, ob es eine Grenze dafür gibt) –

+0

Ich bin kein Ruby-Experte, also muss ich "oder" verwenden, um den Befehl auszuführen, weil er mir eine Syntax zeigt Fehler –

+0

ein einzelnes Backtick 'aber ich hatte Problem als Abschlag macht es Code –

Verwandte Themen