【问题标题】:docker-py: Is it possible to add healthcheck commands to services.create?docker-py:是否可以向 services.create 添加运行状况检查命令?
【发布时间】:2017-09-28 17:21:27
【问题描述】:

creating a new service使用docker-py SDK时有没有办法指定healthcheck命令?

此选项在 docker cli 中使用标志 '--health-cmd' 以及 SDK 在创建新容器运行时可用,但即使使用低级 API,我也找不到为服务指定运行状况检查命令的方法.

【问题讨论】:

    标签: python docker dockerpy


    【解决方案1】:

    SDK 中没有任何功能。因此,在他们的 git repo 上打开问题并要求他们添加该功能。在那之前,您可以使用我构建的以下解决方法

    from docker import client
    from docker.models.services import CONTAINER_SPEC_KWARGS
    from docker.types.services import ContainerSpec
    
    init_spec = ContainerSpec.__init__
    
    
    def override_init(self, *args, **kwargs):
        self['HealthCheck'] = kwargs.pop("HealthCheck")
        init_spec(self, *args, **kwargs)
    
    ContainerSpec.__init__ = override_init
    
    if 'HealthCheck' not in CONTAINER_SPEC_KWARGS:
        CONTAINER_SPEC_KWARGS.append('HealthCheck')
    
    
    c = client.from_env()
    
    result = c.services.create(name="nginx", image="nginx",
                               HealthCheck={
                                   "Test": ["CMD", "ls", "-alh"],
                                   "Interval": 1000000 * 500, # 500 ms
                                   "Timeout": 1000000 * 5 * 1000, # 5 seconds
                                   "Retries": 3,
                                   "StartPeriod": 1000000 * 5 * 1000 # 5 seconds
                               })
    
    print(result)
    

    输出如下

    CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                        PORTS               NAMES
    f617eaf4d211        nginx:latest        "nginx -g 'daemon ..."   About a minute ago   Up About a minute (healthy)   80/tcp              nginx.1.htgg23ysze00qr0kb790lyxnv
    

    【讨论】:

    • 感谢您的信息。我刚刚检查了存储库,似乎正好有一个pull request
    猜你喜欢
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多