本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

inotify Docker 镜像下载 - 轩辕镜像

inotify 镜像详细信息和使用指南

inotify 镜像标签列表和版本信息

inotify 镜像拉取命令和加速下载

inotify 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

inotify
devodev/inotify

inotify 镜像详细信息

inotify 镜像标签列表

inotify 镜像使用说明

inotify 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

一个轻量级工具,用于监控文件系统事件并在匹配条件时运行脚本。
0 次下载activedevodev镜像

inotify 镜像详细说明

inotify 使用指南

inotify 配置说明

inotify 官方文档

docker-inotify

![Version]([] ![Version]([] ![Docker Pulls]([] ![Docker Stars]([]

快速参考

  • 维护者: devodev

支持的标签及对应的 Dockerfile 链接

  • 0.3.0, 0.3, latest

快速参考(续)

  • 问题反馈地址: [***]

什么是 Inotify?

GitHub 仓库: <[***]>

来自 Linux 手册页(<[***]>):

inotify API 提供了一种监控文件系统事件的机制。Inotify 可用于监控单个文件或目录。当监控目录时,inotify 将返回目录本身及其内部文件的事件。

inotify-tools 软件包包含两个命令行工具(inotifywaitinotifywatch),允许与 Inotify API 交互。

如何使用此镜像

docker-inotify 提供基于 Alpine 的镜像,包含 inotify-tools 软件包、bash 以及一系列网络相关命令行工具(如 curlnetcat 等)。它还包含轻量级脚本 inotifywait.sh,可监控文件和/或目录并将事件发送到用户定义的脚本。该脚本可通过环境变量完全配置。

此镜像的主要用例是提供一种基于配置文件更改触发操作的简单方法。只需在边车容器中挂载要监控的卷,并提供事件接收时触发的脚本即可。

工作原理

inotifywait 进程监控 INOTIFY_TARGET,并使用触发的事件数据作为参数运行 INOTIFY_SCRIPT。

使用默认配置值时,脚本将接收以下参数:

argv名称
$1时间戳
$2被监控文件/目录路径
$3事件名称
$4文件名(若监控目录)

参数示例

监控事件: modify delete delete_self

被监控文件被修改/删除时:

bash
22:48:36 /test MODIFY
22:48:36 /test DELETE_SELF

被监控目录中的文件被修改/删除时:

bash
22:48:36 /test/ MODIFY a_file
22:48:36 /test/ DELETE a_file

以下部分描述如何配置监控进程。

环境变量

全局变量

变量名是否必填默认值描述
INOTIFY_TARGET要监控事件的文件或目录路径
INOTIFY_SCRIPT事件发生时要运行的脚本
INOTIFY_QUIETtrue若设置,抑制日志消息

监控配置变量

默认值在大多数情况下适用。

有关 inotifywait 可用标志的更多详情,请参见 inotify-tools。

布尔值可设置为任何值以被视为 true。

变量名默认值描述
INOTIFY_CFG_CSVfalse(布尔值)使用 CSV 格式输出事件
INOTIFY_CFG_EVENTSmodify delete delete_self空格分隔的要监控事件列表
INOTIFY_CFG_EXCLUDE-使用 POSIX 正则模式排除文件子集
INOTIFY_CFG_EXCLUDEI-INOTIFY_CFG_EXCLUDE 相同,但不区分大小写
INOTIFY_CFG_INCLUDE-使用 POSIX 正则模式包含文件子集
INOTIFY_CFG_INCLUDEI-INOTIFY_CFG_INCLUDE 相同,但不区分大小写
INOTIFY_CFG_QUIETtrue(布尔值)抑制 inotifywait 日志
INOTIFY_CFG_RECURSIVEfalse(布尔值)监控所有子目录,深度不限
INOTIFY_CFG_TIMEFMT%H:%M:%S用于显示事件中 %T 的 strftime 兼容模式
INOTIFY_CFG_TIMEOUT-无事件接收 X 秒后超时并重新设置监控器

示例

Kubernetes

以下示例定义包含应用容器和 inotify 边车容器的 Pod,当挂载的配置文件(此处为共享 ConfigMap)更新时,边车容器将触发服务器重载。

yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: application-conf
data:
  application.conf: |-
    [server]
    property=value
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: inotify-example-reload-script
data:
  reload-server.sh: |-
    #!/usr/bin/env bash

    timestamp="$1"; shift
    file="$1"; shift
    event="$1"; shift

    echo "[${timestamp}] 文件: ${file} 已更改(${event}),触发服务器重载"
    curl -s -X POST http://localhost:8080/reload
---
apiVersion: v1
kind: Pod
metadata:
  name: inotify-example
spec:
  containers:
  - name: application
    image: application/server:latest
    ports:
      - containerPort: 8080
        name: server
    volumeMounts:
      - name: conf
        mountPath: /conf/application.conf
        readOnly: true
        subPath: application.conf
  - name: reload-server-sidecar
    image: devodev/inotify:latest
    env:
      - name: INOTIFY_TARGET
        value: "/conf/application.conf"
      - name: INOTIFY_SCRIPT
        value: "/reload-server.sh"
    volumeMounts:
      - name: conf
        mountPath: /conf/application.conf
        readOnly: true
        subPath: application.conf
      - name: reload-script
        mountPath: /reload-server.sh
        readOnly: true
        subPath: reload-server.sh
  volumes:
    - name: conf
      configMap:
        name: application-conf
    - name: reload-script
      configMap:
        name: inotify-example-reload-script
        # 确保脚本可执行
        defaultMode: 0777

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"