Docker-从主机angular度将configuration前端与后端的IP进行组合

我想创build一个简单的docker-compose设置。 我有一个静态的前端实现了由nginx服务的JS – 这是一个容器。 我也有一个API后端Web服务器 – 另一个容器。

我可以使用典型的端口转发单独运行两个容器,也可以通过docker-machine ip提供的IP从我的主机(Mac OS X)访问。 问题是前端服务正确的静态内容,但JavaScript正在API请求错误的地址。 因为主机是实际执行API调用的主机,所以前端应用需要从主机的angular度来configuration后端的地址。

有没有办法将docker机器的IP地址传递到容器的环境中? 或者可以做到这一点的其他networkingconfiguration。

更多的解决办法比实际的答案:

我能够修改前端configuration使用“document.location.hostname”代替静态定义的地址。

所考虑的选项是在/ etc / hosts中有一个根据某些脚本dynamic更新的条目(见下文),以便VM始终可以通过某个静态名称进行引用,然后将前端configuration为使用该名称。 这更像是一种黑客行为,但可以适用于更一般的情况。

 if [ ! -z "$DOCKER_HOST" ]; then ip=`echo $DOCKER_HOST | grep -o '\d\+\.\d\+\.\d\+\.\d\+'` grep -v "$ip" /etc/hosts | grep -v "docker-dev" > tmp_hosts echo "$ip docker-dev" >> tmp_hosts sudo mv tmp_hosts /etc/hosts fi