在CoreOS中启动一个依赖单元

我希望在CoreOS上使用Docker的官方wordpress和mysql镜像来部署Wordpress。 我可以成功启动MySql单元,但是,Wordpress单元无法启动。

这里是MySQL的单元文件:

[Unit] Description=MySQL DB After=docker.service Requires=docker.service [Service] TimeoutStartSec=30 ExecStartPre=-/usr/bin/docker kill mysql1 ExecStartPre=-/usr/bin/docker rm mysql1 ExecStartPre=/usr/bin/docker pull mysql ExecStart=/usr/bin/docker run --rm --name mysql1 -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql ExecStop=/usr/bin/docker stop mysql1 [X-Fleet] Conflicts=mysql@*.service 

这里是Wordpress的单元文件:

 [Unit] Description=My WordPress BindsTo=mysql@%i.service After=mysql@%i.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill wordpress1 ExecStartPre=-/usr/bin/docker rm wordpress1 ExecStartPre=/usr/bin/docker pull wordpress ExecStart=/usr/bin/docker run --rm --name wordpress1 --link mysql1:mysql -p 8080:80 wordpress ExecStop=/usr/bin/docker stop wordpress1 [X-Fleet] MachineOf=mysql@*.service 

我跟随了CoreOS doc上的教程来提出这样的configuration。

我试图删除BindsTo指令,但它没有帮助。 我尝试不使用MachineOf,而是使用冲突指令,但没有任何更改。 没有单位创build,没有输出。 该命令fleetctl start wordpress@1.service只是立即返回。

我将不胜感激,如果你能帮我弄清楚我的configuration有什么问题,还有如果有更好的方法来构build这样的configuration。

你可以尝试告诉舰队开始这两个单位?

 fleetctl start wordpress@1.service mysql@1.service 

如果你需要更多的debugging信息, fleetctl --debug start可能会有一些线索,就像journalctl --since today -u fleet

感谢Rob的回答,我发现wordpress单元已经启动,但陷入了一个无限的启动循环。 原因是因为在wordpress单元文件的最后一行,我应该有MachineOf=mysql@%i.service而不是MachineOf=mysql@*.service 。 错字使得服务试图find一台具有这种描述服务但不能的机器。