python - 如何动态地将 Docker 容器的 IP 添加到 Django ALLOWED_HOSTS

标签 python django docker docker-container

我计划在 Docker 中部署我的 Django 应用程序。 对于主机验证,我们需要将 ALLOWED_HOST 变量设置为域名或 IP 地址。

如何将正在为我的应用程序提供服务的容器的 IP 地址添加到允许的主机?

出于安全原因,我不想使用通配符或 IP 范围。我能做什么?

最佳答案

只需包含一个脚本作为容器启动的一部分(例如,您的 CMD 或可能是您的 ENTRYPOINT),该脚本可获取容器 IP 地址并将其放入文件中。例如

#!/bin/sh

myaddr=$(ip addr show eth0 | awk '$1 == "inet" {print $2}' | cut -f1 -d/)
sed -i "s/^ALLOWED_HOSTS=.*/ALLOWED_HOSTS=$myaddr/" /path/to/config/file.conf

虽然说实话,我不确定您想要这样做...通常,您将通过主机上已发布的端口访问容器化服务(例如,通过 -p docker run 选项),因此您需要主机 IP(或 localhost,具体取决于您的用例),而不是容器 IP。

关于python - 如何动态地将 Docker 容器的 IP 添加到 Django ALLOWED_HOSTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58870139/

相关文章:

python - 如何在Python中通过套接字建立连接?

python - Altair 中的多项选择

python - 作为 Django 包维护者,我如何处理迁移?

python-3.x - 在 Django 中未定义主键类型警告时使用的自动创建主键

python - 你如何在 Python/Django/MySQL 中避免这种竞争条件?

python - Pytest - 访问 class_method 上的 session_scope 固定装置

python - 如何将多条记录添加到谷歌应用引擎数据存储区

docker - 自定义 boot2docker.iso 以在容器上使用无线设备(Docker-toolbox)

docker - Dockerfile 中的条件复制?

docker - 我的docker swarm创建了一个<none>镜像,尝试更新时该镜像一直在运行