我正在构建一个 Docker 容器来使用 gcloud 提交 ML 训练作业 - 可运行对象实际上是一个 Python 程序,并且 gcloud 正在通过 subprocess.check_output执行。在 Docker 容器外运行程序工作得很好,这让我想知道是否存在一些未安装的依赖项,但 gcloud 根本没有输出任何有用的日志。
在运行gcloud ml-engine 作业提交训练时,可执行文件返回退出状态 1并简单地输出Internal Error。Google Cloud Console 上可用的日志始终是 5 个“正在验证作业要求...”条目,没有更多信息。
Docker 容器安装了以下依赖项(有些与 Google Cloud ML 无关,但被程序中的其他功能使用):
通过 apt-get: python、python-pip、python-dev、libmysqlclient-dev、curl
通过 pip 安装: flask、MySQL-python、configparser、pandas、tensorflow
gcloud 工具本身是通过下载 SDK 并通过命令行安装来安装的:
RUN curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /tmp/google-cloud-sdk.tar.gz
RUN mkdir -p /usr/local/gcloud
RUN tar -C /usr/local/gcloud -xvf /tmp/google-cloud-sdk.tar.gz
RUN /usr/local/gcloud/google-cloud-sdk/install.sh
ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin
帐户凭据是通过设置
RUN gcloud auth activate-service-account --key-file path-to-keyfile-in-docker-container
RUN gsutil version -l
最后一个gsutil version命令几乎只是为了确保 SDK 安装工作正常。
有没有人知道可能发生的事情或如何进一步调试可能导致gcloud内部错误的原因?
提前致谢!:)