📅  最后修改于: 2023-12-03 15:41:45.346000             🧑  作者: Mango
在使用 Django 和 Docker 运行应用程序时,访问主机数据库是非常常见的需求。在这篇介绍中,我们将讨论如何在 Docker 容器中访问主机数据库。
以下是我们访问主机数据库的步骤:
首先,在 Dockerfile 中设置环境变量,以使 Django 从主机数据库中读取数据。例如,我们可以将以下行添加到 Dockerfile 中:
ENV DB_HOST=myhost
这将把变量 DB_HOST
设置为 myhost
。
我们还需要在 Docker Compose 文件中设置与 Dockerfile 中使用的相同的环境变量。例如,我们可以将以下行添加到 Docker Compose 文件中:
services:
web:
environment:
DB_HOST: myhost
最后,我们需要配置 Django 以使用主机数据库。我们可以在 settings.py
文件中添加以下行:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': os.environ['DB_HOST'],
'PORT': '5432',
}
}
这将使用环境变量 DB_HOST
中设置的值作为主机名称,而不是默认的 localhost
。
在 Docker 中访问主机数据库并不难,只需遵循上述步骤即可。当然,确保您的主机数据库和 Docker 容器能够使用相同的网络配置和端口映射也很重要。
Happy coding!