2015-03-18 6 views
6

Ich versuche, eine Docker-Anwendung auf Elastic Beanstalk von Circle CI zu implementieren.AWS CLI-Tools auf Circle CI: configure: unbekannter Befehl

Der Einsatz Abschnitt meiner circle.yml ist

deployment: 
    hub: 
    branch: [internal, production] 
    commands: 
     - pip install awscli 
     - docker push company/web:$CIRCLE_SHA1 
     - sudo bash deploy.sh $CIRCLE_SHA1 $CIRCLE_BRANCH $CIRCLE_BUILD_NUM 

und meine deploy.sh nennt aws cli wie folgt

aws --version 
aws configure set aws_access_key_id $AWSKEY 
aws configure set aws_secret_access_key $AWSSECRETKEY 
aws configure set default.region us-west-2 
aws configure set default.output json 

echo "SAVING NEW DOCKERRUNFILE: $DOCKERRUN_FILE" 
aws s3 cp $DOCKERRUN_FILE s3://$EB_BUCKET/$DOCKERRUN_FILE 

aber ich habe den Fehler

- Version: falscher Meta-Parameter?

Gesundheits-Check: "/root/.awssecret": Datei fehlt. (Format: AccessKeyID \ nSecretAccessKey \ n)

configure: unbekannt Befehl Verbrauch: aws ACTION [--help]

Das Skript arbeitet völlig in Ordnung lokal auf Mac OS mit den exakt gleichen Schlüssel und Geheim verwenden.

Beide Versionen (auf Kreis und mein mac) von awscli sind 1.7.14

Antwort

7

ich Kevin aus CircleCI bin. Es sieht so aus, als ob das Problem hier mit der Tatsache zusammenhängt, dass CircleCI bei der Installation von Python-Abhängigkeiten diese in einem virtualenv installiert. Dies ist normalerweise eine großartige Sache, da es Ihre Python-Umgebung vom Standardsystem Python isoliert und unseren Abhängigkeits-Cache unterstützt. Das Problem hier ist, dass Sie Ihr deploy.sh Skript mit sudo ausführen, das die virtualenv Umgebung überschneidet und die Standardsystemversion ausführt (die in diesem Fall tatsächlich eine ältere alternative AWS CLI ist). Das Löschen des Sudos sollte die Dinge für Sie regeln. (Es wäre auch besser, pip install awscli==x.x.x in der "Abhängigkeiten" -Phase auszuführen, als würde es dann zwischengespeichert werden.)

PS: Bitte kontaktieren Sie [email protected] für eine rechtzeitige Antwort auf Fragen im Allgemeinen.