我已经计划在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。