【发布时间】:2018-01-31 18:54:13
【问题描述】:
我需要在 chromedriver 容器中运行一个命令,从 php-fpm 容器传递一个 ip。 php-fpm 容器主机名是“php-fpm”。两个容器都在同一个网络中。所以这些家伙可以互相看到。
如果我访问 chromedriver 容器并运行此命令,它可以正常工作:
chromedriver --url-base=/wd/hub --whitelisted-ips=$(getent hosts php-fpm | cut -d' ' -f1)
我在这里期望的是$(getent hosts php-fpm | cut -d' ' -f1) 从 php-fpm 容器中获取 ip 并分配给 whitelisted-ips 参数。再次,它工作正常。
但是如果我从我的主机运行:
docker-compose exec chromedriver chromedriver --url-base=/wd/hub --whitelisted-ips=$(getent hosts php-fpm | cut -d' ' -f1)
getent 命令不返回 php-fpm 的 ip。 是否有任何考虑转义字符、额外参数或类似的东西到这个 exec 命令的工作原理?
我可以在没有 ip 的情况下运行 chromedriver。仅用于开发环境。但是我想知道为什么这个命令不起作用。
提前感谢。
【问题讨论】:
-
hackernoon.com/… 很有帮助。
标签: linux docker docker-compose selenium-chromedriver