Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GCP VM实例运行docker映像,并带有;“过时”;构建参数 上下文_Docker_Google Cloud Platform_Github Actions_Google Cloud Registry - Fatal编程技术网

GCP VM实例运行docker映像,并带有;“过时”;构建参数 上下文

GCP VM实例运行docker映像,并带有;“过时”;构建参数 上下文,docker,google-cloud-platform,github-actions,google-cloud-registry,Docker,Google Cloud Platform,Github Actions,Google Cloud Registry,我正试图在GitHub操作中构建一个CD管道,创建一个docker映像,将其推送到Google Cloud Registry(GCR),然后用最新映像重新启动一个VM实例 问题 虚拟机实例没有运行最新的docker映像,即使虚拟机实例页面本身显示了正确的映像标记,我看到虚拟机实例正在重新启动 我怀疑这是因为当我SSH到VM实例中并运行docker logs时,我看到的日志表明正在使用docker构建参数的旧值,特别是数据库URL。(我还确认,在请求端点后,适当的日志会显示在这里,因此看起来我正在

我正试图在GitHub操作中构建一个CD管道,创建一个docker映像,将其推送到Google Cloud Registry(GCR),然后用最新映像重新启动一个VM实例

问题 虚拟机实例没有运行最新的docker映像,即使虚拟机实例页面本身显示了正确的映像标记,我看到虚拟机实例正在重新启动

我怀疑这是因为当我SSH到VM实例中并运行
docker logs
时,我看到的日志表明正在使用docker构建参数的旧值,特别是
数据库URL
。(我还确认,在请求端点后,适当的日志会显示在这里,因此看起来我正在查看正确的日志)

当我下拉同一个图像并在本地运行它时,
DATABASE\u URL
是正确的

当我SSH到VM实例并运行
docker-images
时,我没有看到新的映像被列出。我一定是弄坏了什么东西,因为这在早些时候起作用,但我在这里发现问题时遇到了麻烦

问题: 为什么VM实例不接收新的docker映像?(当运行
docker images
时,我看不到新的docker图像被列出)

更新 通过以下方式检查VM实例的日志后:

sudo journalctl -u konlet-startup
我看到以下错误:

Error: Failed to start container: Error response from daemon: {"message":"pull access denied for gcr.io/..., repository does not exist or may require 'docker login': denied: Permission denied for \"...\" from request \"...". "}

这就解释了为什么我不再收到新的docker图像

代码片段 为了确保
secrets.DATABASE\u URL
实际上是正确的,我启动了一个服务器并在Dockerfile中发送了一个请求:

RUN curl "http://my-url.ngrok.io/${DATABASE_URL}"

我可以确认它确实是正确的。

计算引擎的服务帐户的作用域和授权是什么?啊,这可能就是问题所在。也许我甚至在不了解其用途的情况下删除了VM实例的服务帐户。然而,我最终走了一个不同的方向(从VM实例到AppEngine Flex),所以我们可以考虑关闭这个问题。但是,如果有人有类似的问题,我会继续关注,这可以帮助他们调试问题。计算引擎的服务帐户的作用域和授权是什么?啊,这可能就是问题所在。也许我甚至在不了解其用途的情况下删除了VM实例的服务帐户。然而,我最终走了一个不同的方向(从VM实例到AppEngine Flex),所以我们可以考虑关闭这个问题。然而,我会继续保持它,以防有人有类似的问题,这可以帮助他们调试问题。
RUN curl "http://my-url.ngrok.io/${DATABASE_URL}"