【发布时间】:2020-12-25 19:33:23
【问题描述】:
我正在使用 cloud_proxy 连接到谷歌云 postgres 实例。我按照 GCP 网站https://cloud.google.com/sql/docs/postgres/connect-admin-proxy 中的步骤进行操作。当我使用 python manage.py runserver 在本地运行它时,db 的主机为 127.0.0.1,端口为 5432,程序运行正常。
如果我尝试 dockerize 应用程序并运行程序,我将面临错误
无法连接到服务器:连接被拒绝 服务器是否在主机“localhost”(127.0.0.1)上运行并接受 端口 5432 上的 TCP/IP 连接?
Docker 文件
服务: 网络: 建造: 。 命令:python manage.py runserver
volumes:
- .:/code
ports:
- 8000:8000
所以我尝试使用堆栈溢出答案Is there a way to access google cloud SQL via proxy inside docker container dockerize 应用程序,也修改了 settings.py 文件中的主机。
现在面临错误 gcloud 不在路径中,并且 -instances 和 -projects 为空
服务:
网络:
build: .
command: python manage.py runserver
depends_on:
- cloud-sql-proxy
volumes:
- .:/code
ports:
- 8000:8000
env_file:
- ./.env.dev
云-sql-代理:
image: gcr.io/cloudsql-docker/gce-proxy:1.16
command: /cloud_sql_proxy --dir=/cloudsql instances=abc:us-central1:def=tcp:0.0.0.0:5432 -credential_file=/secrets/cloudsql/credentials.json
ports:
- 5432:5432
volumes:
- credentials.json:/secrets/cloudsql/credentials.json
restart: always
你能帮我解决这个问题吗?我的要求是使用 Django 应用程序创建一个 docker 映像,以便可以将其部署到 GCP。
【问题讨论】:
-
如果您觉得我的回答有用,请考虑点赞/接受,谢谢!
标签: django docker google-cloud-platform docker-compose