我使用google / nodejs-runtime docker镜像在App Engine上使用基于nodejs的自定义部署。
我通过
在localhost上构建了我的代码gcloud preview app run .
它运行正常。但是当我使用
将其部署到我的App Engine时gcloud preview app deploy .
它给出了这个错误(以及整个堆栈跟踪):
Build Error: Get https://index.docker.io/v1/repositories/google/nodejs-runtime/images: dial tcp: lookup index.docker.io on 192.168.2.1:53: no answer from server.
从内部Google Repos获取存储库时,这似乎是错误的。是吗?
答案 0 :(得分:0)
所以这是在部署到应用引擎时发生的事情:
虽然我的假设是这个问题出现在Google的终端注册表中,但事实并非如此。
因此实际上有两个问题导致了这个问题:
主要问题(正如@ John-Lowry提出的问题所述): 连接到docker服务器的错误是DNS名称解析。这是由于我的ISP的DNS问题阻止了对服务器的访问。在更改ISP时解决,并在ISP#1上解决了一段时间。
次要问题(不确定是否完全相关): 一旦我切换ISP,就会发生以下错误
google.appengine.tools.docker.containers.ImageError: Image with tag google/docker-registry was not found
一旦我从服务器更新了图像,就解决了这个问题。 Similar Question最后,更新的应用程序被推送到服务器。
我不确定错误发生的原因,但这是我评估的内容:
在部署之前的某个时刻更新了docker注册表图像(google / docker-registry)。在部署时,对正在使用的映像(google / nodejs-runtime)执行了检查,但由于nodejs-runtime依赖于docker-registry(我猜测维护各种访问策略),因此有必要更新到更新的映像
请建议修改。