Sam*_*uel 4 python django docker docker-compose
我使用 Django 作为我的 Web 框架。我使用 PostgresSQL 作为数据库。为了启动我的 Postgres 数据库和 Web 服务器,我使用 Docker。
当我使用 docker-compose up 启动服务器和数据库时,一切正常。数据库正确加载到 Django 中,我没有收到任何错误。
但是当我运行例如python3 manange.py makemigrationsdjango 时会抛出错误:
无法将主机名“db”转换为地址:名称或服务未知
其中“db”是我的 postgres 数据库的名称。即使服务器和数据库在不同的窗口上运行时也是如此。我觉得很奇怪的是当我启动docker时就找到了数据库。
如何访问诸如 之类的命令python3 manage.py [...]?
例如,我需要创建一个超级用户,但不知道在哪里创建它,因为如果我使用普通用户,python3 manage.py createsuperuser我会得到与上面相同的错误。
我也无法使用启动 docker 的控制台窗口,因为 Django 服务器在那里运行并且只显示传入的 http 帖子和请求。
您需要docker-compose exec在应用程序容器中运行管理命令。
docker-compose exec webservicenamehere python manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)
(请参阅docker-compose ps或您为 编写的 YAML webservicenamehere。)
您收到该db错误是因为主机名db只是 Docker Compose 为您提供的 Docker 网络中的一个内容;您的主机不知道这样的主机名(并且数据库无论如何都不会直接暴露给主机,除非您说应该这样做)。
| 归档时间: |
|
| 查看次数: |
2542 次 |
| 最近记录: |