2017-02-12 24 views
13

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html#docker-singlecontainer-dockerrun-privaterepoKhông thể xác thực Docker trong Elastic Beanstalk qua S3

Tiếp theo hướng dẫn tại đây để kết nối với một container trung tâm Docker tin từ đàn hồi Beanstalk, nhưng nó kiên quyết từ chối để làm việc. Nó có vẻ như khi gọi docker login trong Docker 1.12 file kết quả có không có tài sản thư điện tử, nhưng có vẻ như AWS hy vọng nó vì vậy tôi tạo ra một tập tin gọi là dockercfg.json trông như thế này:

{ 
    "https://index.docker.io/v1/": { 
     "auth": "Y2...Fz", 
     "email": "[email protected]" 
    } 
} 

Các mảnh có liên quan của tôi Tệp Dockerrun.aws.json trông giống như sau:

"Authentication": { 
    "Bucket": "elasticbeanstalk-us-west-2-9...4", 
    "Key": "dockercfg.json" 
    }, 

Và tôi có tệp được tải lên ở gốc của thùng S3. Tại sao tôi vẫn nhận được lỗi nói rằng Error: image c...6/w...t:23 not found. Check snapshot logs for details. Tôi chắc chắn rằng các tên là đúng và điều này sẽ làm việc nếu nó là một kho lưu trữ công cộng. Lỗi đầy đủ ở bên dưới. Tôi đang triển khai từ GitHub với Circle CI nếu nó tạo sự khác biệt, vui lòng cung cấp bất kỳ thông tin nào khác cần thiết.

INFO: Deploying new version to instance(s).       
WARN: Failed to pull Docker image c...6/w...t:23, retrying... 
ERROR: Failed to pull Docker image c...6/w...t:23: Pulling repository docker.io/c...6/w...t 
Error: image c...6/w...t:23 not found. Check snapshot logs for details. 
ERROR: [Instance: i-06b66f5121d8d23c3] Command failed on instance. Return code: 1 Output: (TRUNCATED)...b-project 
Error: image c...6/w...t:23 not found 
Failed to pull Docker image c...6/w...t:23: Pulling repository docker.io/c...6/w...t 
Error: image c...6/w...t:23 not found. Check snapshot logs for details. 
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI. 
INFO: Command execution completed on all instances. Summary: [Successful: 0, Failed: 1]. 
ERROR: Unsuccessful command execution on instance id(s) 'i-06b66f5121d8d23c3'. Aborting the operation. 
ERROR: Failed to deploy application.         

ERROR: Failed to deploy application. 

EDIT: Đây là tệp Dockerrun đầy đủ. Lưu ý rằng% BUILD_NUM% chỉ là một int, tôi có thể xác minh rằng nó hoạt động.

{ 
    "AWSEBDockerrunVersion": "1", 
    "Authentication": { 
    "Bucket": "elasticbeanstalk-us-west-2-9...4", 
    "Key": "dockercfg.json" 
    }, 
    "Image": { 
    "Name": "c...6/w...t:%BUILD_NUM%", 
    "Update": "true" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "8080" 
    } 
    ] 
} 

EDIT: Ngoài ra, tôi đã xác minh rằng điều này có hiệu quả nếu tôi đặt vùng chứa Docker Hub này thành công khai.

+0

Bạn có thể đăng toàn bộ tệp Dockerrun.aws.json không? – sap1ens

+0

Cảm ơn, chỉ cần – CamJohnson26

+0

Mọi thứ có vẻ chính xác. Bạn có thể xác nhận rằng EB có tất cả các quyền IAM cần thiết để truy cập vào nhóm S3 đó không? – sap1ens

Trả lời

4

OK, hãy thực hiện việc này;

Nhìn vào trang doc cùng,

Với Docker phiên bản 1.6.2 trở về trước, các lệnh Docker đăng nhập tạo ra các tập tin xác thực trong ~/.dockercfg theo định dạng sau:

{ 
    "server" : 
    { 
    "auth" : "auth_token", 
    "email" : "email" 
    } 
} 

Bạn đã nhận được phần này chính xác mà tôi thấy. Hãy kiểm tra lại các trường hợp bên dưới từng cái một;

1) Bạn có đang lưu trữ nhóm S3 trong cùng một khu vực không?

Thùng S3 của Amazon phải được lưu trữ trong cùng một khu vực với môi trường đang sử dụng. Elastic Beanstalk không thể tải xuống các tệp từ thùng chứa Amazon S3 được lưu trữ ở các khu vực khác.

2) Bạn đã kiểm tra các quyền cần thiết chưa?

Cấp quyền cho s3: Hoạt động GetObject vào vai trò IAM trong tiểu sử cá thể. Để biết chi tiết, xem Managing Elastic Beanstalk Instance Profiles.

3) Bạn có thông tin xô S3 trong tệp cấu hình của mình không? (Tôi nghĩ rằng bạn có này quá)

Bao gồm các thông tin xô Amazon S3 trong Authentication (v1) hoặc authentication (v2) tham số trong tập tin Dockerrun.aws.json của bạn.

Không thể xem các quyền của bạn hoặc vùng env của bạn, vì vậy hãy kiểm tra kỹ các điều khoản đó. Nếu điều đó không có tác dụng, tôi sẽ nâng cấp lên Docker 1.7+ nếu có thể và sử dụng kiểu ~/.docker/config.json tương ứng.

+1

Cảm ơn những lời đề nghị, thật đáng buồn tôi đã mắc sai lầm ngu ngốc khi có 2 tệp Dockerrun.aws.json và chỉnh sửa sai, vì tôi đã nhận được các vấn đề auth dù tôi chưa bao giờ thực sự kiểm tra lại điều đó. Tất cả đã được giải quyết ngay bây giờ. – CamJohnson26

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