rrm*_*ugu 11 google-cloud-sql google-compute-engine google-cloud-platform
我有多个docker机器(dev,staging)在运行Django服务器的Google Compute Engine上运行(这需要访问Google Cloud SQL访问权限).我运行了多个Google Cloud SQL实例,每个实例都由我的Google Compute Engine实例上的各个docker机器使用.
目前我通过将我的计算引擎IP列入白名单来访问Cloud SQL.但我不想使用IP明显的原因,即,我不使用静态IP为我的开发机器.
但现在想用google_cloud_proxy方式获取访问权限.但是我该怎么做!GCP提供了多种访问Google Cloud SQL实例的方法.但它们都不适合我的用例:
我有这个选项https://cloud.google.com/sql/docs/mysql/connect-compute-engine ; 但是这个
那么,如何访问Docker中的CLoud SQL?如果docker compose是一个更好的开始方式; 实施kubernetes是多么容易(我使用谷歌容器引擎进行生产)
Dan*_*Dan 13
通过使用docker-compose,我能够弄清楚如何在我的本地docker环境中使用cloudsql-proxy.您需要下载Cloud SQL实例凭据并准备好它们.我将它们保存在我的项目根目录中credentials.json,并将其添加到.gitignore项目中.
我发现的关键部分是=tcp:0.0.0.0:5432在GCP实例ID之后使用,以便可以转发端口.然后,在您的应用程序中,使用cloudsql-proxy而不是localhost作为主机名.确保其余的db信誉在应用程序机密中有效,以便它可以通过cloudsql-proxy容器提供的本地代理进行连接.
注意:请记住我正在编写一个tomcat java应用程序,我docker-compose.yml反映了这一点.
泊坞窗,compose.yml:
version: '3'
services:
cloudsql-proxy:
container_name: cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.11
command: /cloud_sql_proxy --dir=/cloudsql -instances=<YOUR INSTANCE ID HERE>=tcp:0.0.0.0:5432 -credential_file=/secrets/cloudsql/credentials.json
ports:
- 5432:5432
volumes:
- ./credentials.json:/secrets/cloudsql/credentials.json
restart: always
tomcatapp-api:
container_name: tomcatapp-api
build: .
volumes:
- ./build/libs:/usr/local/tomcat/webapps
ports:
- 8080:8080
- 8000:8000
env_file:
- ./secrets.env
restart: always
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3730 次 |
| 最近记录: |