我是GKE和Django的新手。我在Django制作了一个应用程序,制作了一个Docker容器,然后将其推到GCR并通过GKE部署。部署工作正常,但是当我尝试登录时,我会得到操作。对于数据库连接,我使用的是CloudSQL代理。我收集了静态文件并存储在Google存储中。任何帮助将不胜感激。
我尝试了很多已经在网上提供的意见,但未能成功。
当我尝试登录为管理员时,输入我的用户名和登录密码后,我将获得以下输出。
在/admin/login
服务器意外关闭连接这可能意味着服务器异常终止处理请求之前或时期。
以下是我的数据库设置。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'polls',
'USER': os.getenv('DATABASE_USER'),
'PASSWORD': os.getenv('DATABASE_PASSWORD'),
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
尝试登录为管理员时
您应该在Docker日志中检查,并检查是否有任何错误连接到数据库
如果是数据库连接问题,则可以在Docker-compose.yml中尝试以下内容。您可以根据您的 polls 应用程序
自定义提到的其余变量您可以尝试此
web:
build: ./app
image: {imagename}
depends_on:
- cloud-sql-proxy
environment:
- SQL_ENGINE=django.db.backends.postgresql_psycopg2
- SQL_DATABASE=test_db
- SQL_USER=postgres1
- SQL_PASSWORD=6728298
- SQL_HOST=cloud-sql-proxy
- SQL_PORT=5432
- DATABASE=postgres
cloud-sql-proxy:
image: gcr.io/cloudsql-docker/gce-proxy:1.11
command: /cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:5432 -credential_file=/config
volumes:
- {service_account_creds_path.json}:/config
您可以阅读本文https://adilsoncarvalho.com/how-to-use-cloud-sql-sql-proxy-on-docker-compose-compose-f7418c53eed9,以供参考。这篇文章是关于MySQL的,但概念是相同的。祝你好运!