2015-03-18 27 views
6

Sto provando a distribuire un'applicazione docker su Elastic Beanstalk da Circle CI.Strumenti CLI AWS su Circle CI: configure: comando sconosciuto

La sezione distribuzione della mia circle.yml è

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 

e chiama AWS cli come segue

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 

mia deploy.sh ma ho l'errore di

- versione: meta parametro mispelled?

sanity-check: "/root/.awssecret": file mancante. (Formato: AccessKeyID \ nSecretAccessKey \ n)

configure: comando sconosciuto Usage: AZIONE AWS [--help]

Lo script funziona completamente bene localmente sul sistema operativo Mac utilizzando esattamente la stessa chiave e segreto.

Entrambe le versioni (sul cerchio e il mio mac) di awscli sono 1.7.14

risposta

7

Sono Kevin CircleCI. Sembra che il problema qui sia legato al fatto che quando installi le dipendenze Python CircleCI le installa in un virtualenv. Questo di solito è una cosa grandiosa, poiché isola il tuo ambiente python dal sistema predefinito Python e supporta il nostro cacheing delle dipendenze. Il problema qui è che stai eseguendo il tuo script deploy.sh con sudo, che blocca l'ambiente virtualenv ed esegue la versione di sistema predefinita (che in questo caso è in realtà una più vecchia CLI alternativa AWS). Lasciare il sudo dovrebbe risolvere le cose per te. (Sarebbe anche meglio eseguire pip install awscli==x.x.x nella fase "dipendenze", in quanto sarebbe quindi memorizzato nella cache.)

PS: Si prega di contattare [email protected] per una risposta tempestiva alle domande in generale.

Problemi correlati