长期支持版本

    社区创新版本

      支持OCI hooks

      描述

      支持在容器的生命周期中,运行OCI标准hooks。包括三种类型的hooks:

      • prestart hook:在执行isula start命令之后,而在容器的1号进程启动之前,被执行。
      • poststart hook:在容器1号进程启动之后,而在isula start命令返回之前,被执行。
      • poststop hook:在容器被停止之后,但是在停止命令返回之前,被执行。

      OCI hooks的配置格式规范如下:

      • path:格式是字符串,必须项,必须为绝对路径,指定的文件必须有可执行权限。
      • args:格式是字符串数组,可选项,语义和execv的args一致。
      • env:格式是字符串数组,可选项,语义和环境变量一致,内容为键值对,如:"PATH=/usr/bin"。
      • timeout:格式是整数,可选项,必须大于0,表示钩子执行的超时时间。如果钩子进程运行时间超过配置的时间,那么钩子进程会被杀死。

      hook的配置为json格式,一般存放在json结尾的文件中,示例如下:

      {
              "prestart": [
                  {
                      "path": "/usr/bin/echo",
                      "args": ["arg1", "arg2"],
                      "env":  [ "key1=value1"],
                      "timeout": 30
                  },
                  {
                      "path": "/usr/bin/ls",
                      "args": ["/tmp"]
                  }
              ],
              "poststart": [
                  {
                      "path": "/usr/bin/ls",
                      "args": ["/tmp"],
                      "timeout": 5
                  }
              ],
              "poststop": [
                  {
                      "path": "/tmp/cleanup.sh",
                      "args": ["cleanup.sh", "-f"]
                  }
              ]
      }
      

      接口

      isulad和isula都提供了hook的接口,isulad提供了默认的hook配置,会作用于所有容器;而isula提供的hook接口,只会作用于当前创建的容器。

      isulad提供的默认OCI hooks配置:

      • 通过/etc/isulad/daemon.json配置文件的hook-spec配置项设置hook配置的文件路径:"hook-spec": "/etc/default/isulad/hooks/default.json"。
      • 通过isulad --hook-spec参数设置hook配置的文件路径。

      isula提供的OCI hooks配置:

      • isula create --hook-spec:指定hook配置的json文件的路径。
      • isula run --hook-spec:指定hook配置的json文件的路径。

      run的配置其实也是在create阶段生效了。

      使用限制

      • hook-spec指定的路径必须是绝对路径。

      • hook-spec指定的文件必须存在。

      • hook-spec指定的路径对应的必须是普通文本文件,格式为json。

      • hook-spec指定的文件大小不能超过10MB。

      • hooks配置的path字段必须为绝对路径。

      • hooks配置的path字段指定文件必须存在。

      • hooks配置的path字段指定文件必须有可执行权限。

      • hooks配置的path字段指定文件的owner必须是root。

      • hooks配置的path字段指定文件必须只有root有写权限。

      • hooks配置的timeout必须大于0。

          

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份