如何正确选择" / bin / bash"编写cloudify蓝图时

时间:2017-04-27 02:20:44

标签: docker cloudify

我想为RYU控制器编排一个docker容器。我找到了一个如何创建和运行一个工作得很好的教程,我计划根据教程编写cloudify蓝图。我未能处理

docker run -i -t -p 0.0.0.0:6633:6633 --name ryu3.15 muzixing/ryu:SDN /bin/bash

我失去了放置" / bin / bash"的地方。我试过这种方式

node_tamplates:
  ...
    interfaces:
      cloudify.interfaces.circle
        create:
          implementation: docker.docker_plugin.tasks.create_container
          inputs:
            params:
              stdin_open: true
              tty: true
              command: /bin/bash
  ...

但它完成了400客户端错误' No Command Specified',就像" / bin / bash"错过。

我已经阅读了cloudify文档和示例,找不到解决问题的有效方法。所以有人知道传递的适当选项" / bin / bash"或者我可以在哪里学到更多选择?

提前致谢。

更新

根据cloudify文档,我检查了那些允许的参数

def create_container(self, image, command=None, hostname=None, user=None,
                     detach=False, stdin_open=False, tty=False,
                     mem_limit=None, ports=None, environment=None,
                     dns=None, volumes=None, volumes_from=None,
                     network_disabled=False, name=None, entrypoint=None,
                     cpu_shares=None, working_dir=None, domainname=None,
                     memswap_limit=None, cpuset=None, host_config=None,
                     mac_address=None, labels=None, volume_driver=None,
                     stop_signal=None, networking_config=None,
                     healthcheck=None, stop_timeout=None):
...

on https://github.com/docker/docker-py/blob/master/docker/api/container.py

由于/bin/bash是启动终端而更像路径,我再次尝试working_dir: /bin/bash。问题仍然存在。

任何精通的人都愿意分享一些看到参数的想法吗?

1 个答案:

答案 0 :(得分:1)

我相信你必须以不同的方式实现它。

您可以查看以下示例代码:

 some_container:
type: cloudify.docker.Container
properties:
  name: some_name
  image:
    repository: dockeruser/dockerrepo
interfaces:
  cloudify.interfaces.lifecycle:
    create:
      implementation: docker.docker_plugin.tasks.create_container
      inputs:
        params:
          ports:
            - 8080
          stdin_open: true
          tty: true
          command: /bin/sleep 20
    start:
      implementation: docker.docker_plugin.tasks.start
      inputs:
        params:
          port_bindings:
            8080: 8080

如果您需要更多示例,可以找到 http://docs.getcloudify.org/4.0.0/plugins/docker/