我正在构建一个Docker容器,以使用gcloud提交ML训练作业 - 可运行的实际上是一个Python程序,gcloud是通过subprocess.check_output执行的。在 Docker 容器之外运行程序工作得很好,这让我想知道是否有一些未安装的依赖项,但 gcloud 根本没有输出任何有用的日志。
在运行gcloud ml 引擎作业提交训练时,可执行文件返回退出状态 1,只需输出内部错误。Google Cloud Console 上提供的日志始终是 5 个条目"验证作业要求...">,没有进一步的信息。
Docker 容器具有以下已安装的依赖项(有些与 Google Cloud ML 无关,但由程序中的其他功能使用):
Via 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 版本命令几乎只是为了确保 SDK 安装正常工作。
有没有人知道可能发生了什么或如何进一步调试可能导致我在gcloud上出现内部错误的原因?
提前感谢! :)
请确保正确设置所有参数,并确保正确上传和打包所有依赖项。
如果一切都已完成,但您仍然无法运行作业,那么您需要的不仅仅是"内部错误"来查明问题。请联系 Google Cloud Platform 支持团队,或在公共问题跟踪器上提交错误以获得进一步的帮助。