【发布时间】:2020-10-11 18:08:44
【问题描述】:
我创建了一个 Google Cloud Compute Engine 实例模板,我在其中指定了要使用的 docker 容器映像(私有托管在 Google Container Registry 上)。 对于我的应用,我需要运行 Google Cloud Sql Proxy,so I followed these steps 并在我的 Compute Engine 实例模板上添加了一个启动脚本,如下所示:
#! /bin/bash
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O /var/lib/google/cloud_sql_proxy
chmod 777 /var/lib/google/cloud_sql_proxy
sudo /var/lib/google/cloud_sql_proxy -instances={instance name} &
我遇到的问题是,当我基于此模板创建 Compute Engine 虚拟机实例时
gcloud compute instances create {instance name} --source-instance-template {template name}
实例已创建并启动,我可以看到 cloud_sql_proxy 脚本正在运行,但 docker 映像未拉取,容器也未启动...
我尝试在不指定启动脚本的情况下创建一个 Compute Engine VM 实例,它可以正常工作,拉取 docker 映像并且容器开始运行。 随着计算实例的运行,我通过 ssh 连接并手动启动 cloud_sql_proxy 脚本,一切正常(应用程序成功连接到 Google Cloud SQL 上的 SQL 实例)。 但我想让这个自动化......
我错过了什么?有人遇到过这个问题吗?
【问题讨论】:
-
你最终解决了这个问题吗?
-
几个问题: 1. 如果您要创建实例模板,为什么每次都使用
wget? 2. 为什么不为您的应用程序创建一个状态脚本,运行云 sql 代理,然后启动您的应用程序。单一应用程序回购和隔离配置 ==> 易于调试。 3. 缺少chmod +x4. 如果。你这样做,sudo 执行然后为什么chmod 777
标签: docker google-cloud-platform google-compute-engine