首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用GCloud代理将Django docker镜像连接到GCP实例

无法使用GCloud代理将Django docker镜像连接到GCP实例
EN

Stack Overflow用户
提问于 2020-09-07 19:18:17
回答 2查看 440关注 0票数 0

我正在使用cloud_proxy连接到google cloud postgres实例。我遵循了GCP网站https://cloud.google.com/sql/docs/postgres/connect-admin-proxy中的步骤。当我在本地使用python manage.py运行服务器,主机为db为127.0.0.1,端口为5432时,程序运行正常。

如果我试图停靠应用程序并运行程序,我将面临错误

无法连接到服务器:连接被拒绝服务器是否在主机"localhost“(127.0.0.1)上运行并接受端口5432上的TCP/IP连接?

Docker文件

服务: web: build:。命令: python manage.py runserver

代码语言:javascript
复制
volumes:
  - .:/code
ports:
  - 8000:8000

因此,我尝试使用堆栈溢出答案Is there a way to access google cloud SQL via proxy inside docker container修改settings.py文件中的主机来停靠应用程序。

现在,面对错误gcloud is not in the path,-instances和-projects为空

服务:

网站:

代码语言:javascript
复制
build: .
command: python manage.py runserver
depends_on:
  - cloud-sql-proxy
volumes:
  - .:/code
ports:
  - 8000:8000
env_file:
  - ./.env.dev

cloud-sql-proxy:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2020-09-07 19:32:15

我想你错过了-应该是的

代码语言:javascript
复制
command: /cloud_sql_proxy --dir=/cloudsql -instances=abc:us-central1:def=tcp:0.0.0.0:5432 -credential_file=/secrets/cloudsql/credentials.json
票数 1
EN

Stack Overflow用户

发布于 2020-09-09 02:18:58

我建议您遵循下面的文档:

Connecting psql client using the Cloud SQL Proxy docker Image

本页面介绍了如何在运行Linux或Compute Engine Linux实例的客户机上,使用Cloud SQL Proxy Docker镜像,将psql客户端连接到您的Cloud SQL实例,我认为本指南可以满足您的需求。

本指南提到了在第9点启动代理的方法。Unix套接字:

代码语言:javascript
复制
docker run -d -v /cloudsql:/cloudsql \
  -v <PATH_TO_KEY_FILE>:/config \
  gcr.io/cloudsql-docker/gce-proxy:1.16 /cloud_sql_proxy -dir=/cloudsql \
  -instances=<INSTANCE_CONNECTION_NAME> -credential_file=/config

如果您使用的是计算引擎实例提供的凭据,则不要包括credential_file参数和-v <PATH_TO_KEY_FILE>:/config行。如果您使用的是容器优化型镜像,请使用可写目录代替/cloudsql,例如:

代码语言:javascript
复制
-v /mnt/stateful_partition/cloudsql:/cloudsql

此外,如果您想了解有关Cloud SQL代理参数和标志的更多信息,建议您查看此page

我希望这些信息能对你有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63776548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档