2015-03-18 13 views
6

Tôi đang cố gắng triển khai ứng dụng docker lên Elastic Beanstalk từ Circle CI.Công cụ AWS CLI trên CI tròn: cấu hình: lệnh không rõ

Phần triển khai circle.yml của tôi là

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 

và deploy.sh tôi gọi AWS cli như sau

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 

Nhưng tôi nhận được lỗi

- phiên bản: thông số meta sai chính tả?

kiểm tra sanity: "/root/.awssecret": tệp bị thiếu. (Định dạng: AccessKeyID \ nSecretAccessKey \ n)

configure: unknown lệnh Cách sử dụng: HÀNH ĐỘNG AWS [--help]

Các kịch bản hoạt động hoàn toàn tốt cục bộ trên mac os bằng cách sử dụng cùng một khóa chính xác và bí mật.

Cả hai phiên bản (trên vòng tròn và mac của tôi) của awscli là 1.7.14

Trả lời

7

Tôi là Kevin từ CircleCI. Có vẻ như vấn đề ở đây liên quan đến thực tế là khi bạn cài đặt các phụ thuộc Python, CircleCI sẽ cài đặt chúng thành một virtualenv. Điều này thường là một điều tuyệt vời, vì nó cô lập môi trường python của bạn từ hệ thống mặc định Python và hỗ trợ bộ nhớ đệm phụ thuộc của chúng ta. Vấn đề ở đây là bạn đang chạy script deploy.sh với sudo, trong đó clobbers môi trường virtualenv và chạy phiên bản hệ thống mặc định (trong trường hợp này thực sự là một AWI CLI thay thế cũ hơn). Thả sudo nên sửa chữa mọi thứ cho bạn. (Bạn cũng sẽ tốt hơn khi chạy pip install awscli==x.x.x trong giai đoạn "phụ thuộc", vì nó sẽ được lưu trong bộ nhớ cache.)

PS: Vui lòng liên hệ với [email protected] để trả lời kịp thời các câu hỏi nói chung.

Các vấn đề liên quan