问题描述
更新
before_install:
#openssl stuff regarding credentials.tar.gz
- if [ ! -d "${GAE_PYTHONPATH}" ]; then python scripts/fetch_gae_sdk.py $(dirname
"${GAE_PYTHONPATH}"); fi
- if [ ! -d $HOME/google-cloud-sdk/bin ]; then rm -rf $HOME/google-cloud-sdk; curl
https://sdk.cloud.google.com | bash; fi
- tar -xzf credentials.tar.gz
- "$HOME/google-cloud-sdk/bin/gcloud components update"
- "pip install -U cryptography"
- "$HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json" # ERROR HAPPENS HERE
#ERROR IS = Gcloud crashed (AttributeError): '_RSAPrivateKey' object has no attribute 'sign'
- "$HOME/google-cloud-sdk/bin/gcloud auth configure-docker"
这是我无法理解的。我会假设它是否与 gcloud 的突然版本升级有关并且它与 crpyotgraphy 不兼容,那么很多应用程序都会失败,我的修复尝试会修复它。但这在我收到上述电子邮件之前一直有效,所以我认为在那封电子邮件之后有些事情搞砸了,但这只是一个疯狂的猜测。
language: python
python: 2.7
branches:
only:
- master
services:
- docker
cache:
directories:
- "$HOME/google-cloud-sdk/"
env:
- GAE_PYTHONPATH=${HOME}/.cache/google_appengine PATH=$PATH:${HOME}/google-cloud-sdk/bin
PYTHONPATH=${PYTHONPATH}:${GAE_PYTHONPATH} CLOUDSDK_CORE_disABLE_PROMPTS=1
before_install:
#unrelated stuff
- if [ ! -d "${GAE_PYTHONPATH}" ]; then python scripts/fetch_gae_sdk.py $(dirname
"${GAE_PYTHONPATH}"); fi
- if [ ! -d $HOME/google-cloud-sdk/bin ]; then rm -rf $HOME/google-cloud-sdk; curl
https://sdk.cloud.google.com | bash; fi
- tar -xzf credentials.tar.gz
- "$HOME/google-cloud-sdk/bin/gcloud components update"
- "pip install -U cryptography"
- "$HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json"
- "$HOME/google-cloud-sdk/bin/gcloud auth configure-docker"
install:
#push image to gcr
script:
- echo "done"
此处question 提出了同样的问题,但更新加密模块并没有解决问题(我尝试了 3 个不同版本,从最新版本到答案中列出的版本 -> 2.6.1)。 3 天前,我收到了一封来自谷歌的电子邮件,内容如下。
您好 Cloud Shell 用户,
自从您从 Google 打开 Cloud Shell 以来已经超过 120 天 云平台控制台。 7 天内,您的 Cloud Shell 主目录 将自动安排删除。
要保留您的 Cloud Shell 主目录及其数据,只需登录并 打开 Cloud Shell。
我打开了 shell 以使其保持激活状态,但是当我尝试使用 travis 部署我的 django 应用程序时,当我尝试执行 gcloud 命令时出现以下错误。
$HOME/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file travis-credentials.json
ERROR: gcloud crashed (AttributeError): '_RSAPrivateKey' object has no attribute 'sign'
我尝试了 2.6.1、2.8(我以前的版本)、3.4.1(最新版本),但都没有奏效。关于如何解决这个问题的任何想法?我的最后一次构建是一个月前,它在没有更改任何配置的情况下成功运行
解决方法
显然,这个问题与我使用的 gcloud 版本有关。我总是获取最新版本(目前是 331.0.0)。虽然不理想,但将 gcloud SDK 降级到 330.0.0 解决了该问题。
gcloud components update --version 330.0.0