2017-01-12 25 views
5

Tôi đang tìm các hành vi khác nhau từ bên trong và bên ngoài hình ảnh đế để xác thực tài khoản dịch vụ google.Xác thực tài khoản dịch vụ Google Cloud trên hình ảnh docker

Ngoài. Thành công.

C:\Users\Ben\AppData\Local\Google\Cloud SDK>gcloud auth activate-service-account [email protected] --key-file C:/Users/Ben/Dropbox/Google/MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370 
Activated service account credentials for: [[email protected]] 

Chạy bộ nạp đế, chuyển khóa .json đến thư mục tmp.

C:\Users\Ben\AppData\Local\Google\Cloud SDK>docker run -it -v C:/Users/Ben/Dropbox/Google/MeerkatReader-d77c0d6aa04f.json:/tmp/MeerkatReader-d77c0d6aa04f.json --rm -p "127.0.0.1:8080:8080" --entrypoint=/bin/bash gcr.io/cloud-datalab/datalab:local-20161227 

Từ bên trong Docker, xác nhận hồ sơ là có

[email protected]:/tmp# ls 
MeerkatReader-d77c0d6aa04f.json npm-24-b7aa1bcf npm-45-fd13ef7c npm-7-22ec336e 

Chạy lệnh giống như trước. Không.

[email protected]:/tmp# gcloud auth activate-service-account [email protected] 
t.com --key-file MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370 
ERROR: (gcloud.auth.activate-service-account) Failed to activate the given service account. Please ensure provided key file is valid. 

Điều gì có thể gây ra lỗi này? Thông thường hơn, số suggested strategy cho thông tin đăng nhập là gì. Tôi đã thử điều này và nó cũng không thành công. Tôi đang sử dụng API đám mây và tầm nhìn trên đám mây và tôi muốn tránh gcloud init thủ công ở đầu mỗi lần chạy.

EDIT: Để hiển thị thông tin gcloud

[email protected]:/# gcloud info --run-diagnostics 
Network diagnostic detects and fixes local network connection issues. 
Checking network connection...done. 
Reachability Check passed. 
Network diagnostic (1/1 checks) passed. 

khẳng định hành vi tương tự

[email protected]:/tmp# gcloud auth activate-service-account [email protected] --key-file MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370 
ERROR: (gcloud.auth.activate-service-account) Failed to activate the given service account. Please ensure provided key file is valid. 
+0

Lỗi này được tạo khi gcloud cố gắng nhận mã thông báo truy cập. Bạn có kết nối mạng và/hoặc thiết lập proxy từ vùng chứa không. Bạn có thể chạy 'gcloud info --run-diagnostics' không? – cherba

+0

Đã chỉnh sửa để thêm thông tin gcloud. Có cái gì tôi cần phải thêm vào docker chạy để cho phép truy cập (đến một cổng nhất định?). – bw4sz

+0

Cũng gặp sự cố này, có vẻ như cần phải đăng nhập web ít nhất một lần: _ "[Bạn chỉ cần chạy lệnh một lần cho mỗi môi trường người dùng cục bộ.] (Https://cloud.google.com/docs/ xác thựC# getting_credentials_for_server-centric_flow # local_development) "_ –

Trả lời

0

Bạn đã cố gắng để đưa các chứng chỉ trong hình ảnh ngay từ đầu? Đó có phải là một kết quả tương tự không?

Mặt khác, bạn đã thử sử dụng --key-file /tmp/MeerkatReader-d77c0d6aa04f.json chưa? Vì nó xuất hiện, bạn đang đặt tệp json trong /tmp.

Bạn cũng có thể xem xét kiểm tra cấu hình mạng bên trong vùng chứa và với đế từ bên ngoài.

4

Điều này có thể là do sự lệch đồng hồ của máy ảo docker. Tôi đã sửa lỗi chức năng kích hoạt dịch vụ-tài khoản của google SDK và nhận được thông báo lỗi sau:

There was a problem refreshing your current auth tokens: invalid_grant: 
Invalid JWT: Token must be a short-lived token and in a reasonable timeframe 
Please run: 
$ gcloud auth login 

to obtain new credentials, or if you have already logged in with a different account: 

$ gcloud config set account ACCOUNT 

to select an already authenticated account to use. 

Sau khi khởi động lại VM, nó hoạt động như một sự quyến rũ.

+1

cùng một vấn đề ở đây - đồng hồ chỉ còn vài phút nữa! – lifeofguenter

+0

Đã kiểm tra 'date' trong docker, đã sai, khởi động lại docker VM và được cố định. Cảm ơn –

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