我计划在 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/