📜  访问主机数据库 django docker - Python (1)

📅  最后修改于: 2023-12-03 15:41:45.346000             🧑  作者: Mango

访问主机数据库 django docker - Python

在使用 Django 和 Docker 运行应用程序时,访问主机数据库是非常常见的需求。在这篇介绍中,我们将讨论如何在 Docker 容器中访问主机数据库。

步骤

以下是我们访问主机数据库的步骤:

1.在 Dockerfile 中设置环境变量

首先,在 Dockerfile 中设置环境变量,以使 Django 从主机数据库中读取数据。例如,我们可以将以下行添加到 Dockerfile 中:

ENV DB_HOST=myhost

这将把变量 DB_HOST 设置为 myhost

2.在 Docker Compose 文件中设置环境变量

我们还需要在 Docker Compose 文件中设置与 Dockerfile 中使用的相同的环境变量。例如,我们可以将以下行添加到 Docker Compose 文件中:

services:
  web:
    environment:
      DB_HOST: myhost
3.访问数据库

最后,我们需要配置 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!