是工作系统配置文件,需要当前docker主机服务器的参数。我尝试了以下,当我直接运行时它对我很好。
docker run -p 5555:5555 -e REMOTE_HOST="http://`/bin/hostname --ip-address`:5555" -e HUB_PORT_4444_TCP_ADDR=selhub.stage.internal -e HUB_PORT_4444_TCP_PORT=4444 --name=stage_selff stage_selff
但是当我尝试将其添加到systemctl文件中时,
[Unit]
Description=Selenium node container
Requires=docker.service
After=docker.service
[Service]
Restart=on-failure
RestartSec=10
ExecStartPre=-/usr/bin/docker kill stage_selff
ExecStartPre=-/usr/bin/docker rm stage_selff
ExecStart=/usr/bin/docker run -p 5555:5555 -e REMOTE_HOST="http://`/bin/hostname --ip-address`:5555" -e HUB_PORT_4444_TCP_ADDR=selhub.stage.internal -e HUB_PORT_4444_TCP_PORT=4444 --name=stage_selff stage_selff
ExecStop=-/usr/bin/docker stop stage_selff
[Install]
WantedBy=multi-user.target
它无法正常工作,我找不到清楚的日志原因,但我猜测`运算符不被systemctl接受
以下是systemctl记录的内容
Sep 15 01:27:06 docker[831]: 21:27:06.337 INFO - Launching a Selenium Grid node
Sep 15 01:29:06 docker[831]: 21:29:06.668 WARN - error getting the parameters from the hub. The node may end up with wrong timeouts.Connect
Sep 15 01:29:06 docker[831]: 21:29:06.675 INFO - Java: Oracle Corporation 25.45-b02
Sep 15 01:29:06 docker[831]: 21:29:06.678 INFO - OS: Linux 3.16.0-4-amd64 amd64
Sep 15 01:29:06 docker[831]: 21:29:06.690 INFO - v2.47.1, with Core v2.47.1. Built from revision 411b314
Sep 15 01:29:06 docker[831]: 21:29:06.735 INFO - Driver provider org.openqa.selenium.ie.InternetExplorerDriver registration is skipped:
答案 0 :(得分:0)
该构造不起作用,因为ExecStart
并且它的兄弟姐妹(如ExecStartPre
,ExecStop
等)不使用shell进行操作,而是使用execve(3)
系统调用。这意味着像$(command)
,>
,>>
,<
等其他shell构造无效。
有关详细信息,请参阅Command lines。
您可以尝试使用Environment
和EnvironmetFile
选项从单元文件外部传递值。