CoreOS EnvironmentFile指令失败

时间:2015-12-13 17:48:42

标签: vagrant systemd coreos

我正在尝试启动gliderlabs / registrator并让它连接到COREOS_PRIVATE_IPV4 ip地址上的consul。

[Unit]
Description=registrator
After=consul-server@%i.service
Requires=consul-server@%i.service

[Service]
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill registrator
ExecStartPre=-/usr/bin/docker rm registrator
ExecStartPre=/usr/bin/docker pull gliderlabs/registrator
ExecStart=/usr/bin/docker run --volume=/var/run/docker.sock:/var/run/docker.sock --net=host --hostname ${HOSTNAME} --name=registrator gliderlabs/registrator:latest consul://${COREOS_PRIVATE_IPV4}:8500

ExecStop=/usr/bin/docker stop registrator

[X-Fleet]
#Global=true

我在启动抱怨EnvironmentFile指令的服务时遇到错误。

Dec 13 16:23:41 core-01 systemd[1]: [/run/fleet/units/registrator.service:5] Unknown lvalue 'EnvironmentFile' in section 'Unit

我目前正在运行coreos 835.9.0。有没有人想过为什么会失败?

1 个答案:

答案 0 :(得分:0)

提供的单位与错误返回的内容不符。该错误实质上是说EnvironmentFile=选项位于systemd-unit的[Unit]部分,并且该选项在该部分内无效。

你在单位中实际拥有的东西与你放在这里的东西不同,或者当它被解析并渲染出单位时,它可能的舰队搞砸了。

如果查看/run/fleet/units/registrator.service中的文件,您应该能够验证EnvironmentFile选项的位置。请确保它位于[Service]部分,而不是[Unit]部分。

您也可以运行fleetctl cat registrator.service,并且fleet将输出单位文件定义。您可以提交设备,进行更改,然后在重新提交之前不要销毁设备。