我想以cloudify方式运行RYU控制器的docker容器。我写了一个蓝图文件,我可以用它创建相关的部署,并最终启动Docker容器。如何编辑自动在docker容器中运行命令的蓝图cloudify
问题是,控制器(在码头集装箱内)需要实现一个脚本来运行,但我不知道如何修改蓝图文件以自动运行脚本。每次,我必须输入docker exec CONTAINER ryu-manager /path/simple_switch.py
为目标。
因此,有谁知道命令应该放在蓝图的哪个位置。我试图将它包含在内
interfaces:
cloudify.interfaces.lifecycle:
create:
implementation: docker.docker_plugin.tasks.create_container
inputs:
params:
ports:
- { get_input: docker_port }
stdin_open: true
tty: true
command: /bin/bash
start:
implementation: docker.docker_plugin.tasks.start
inputs:
params:
port_bindings: { get_input: container_port_binding }
command: docker exec ryu ryu-manager /ryu/ryu/app/simple_switch.py
# here ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
但收到意外参数的错误。
感谢您的时间和任何意见,将不胜感激〜
还是让我把这种方式,如果有人知道,这部分在cloudify蓝图匹配docker exec
?
哇!这听起来很酷且很简单!我认为使用官方插件是必须的。非常感谢!我会试一试。 – Lootii
它工作正常,你想出了!但是这些旗帜可能是不可能的。容器无法通过'run -d'继续运行,'-t'导致'输入设备不是tty'错误。无论如何,解决方案真的有很大的帮助。再次感谢! – Lootii
嗨,@earthmant!我能再问一个问题吗?由于docker容器是由脚本运行的,我说对了,容器状态只是脚本的结果吗?也就是说,容器实际上与任何cloudify节点无关。 (我发现自己不能通过其他方式影响容器......) – Lootii