Доступ к системным утилитам из докера

Я предполагаю, что ваш xxxявляется подставкой -для какого-то паттерна.

delete_lock () {
    LOCK="$(grep -m1 -o "lockname:xxx")"
    if [ -n "${LOCK#lockname:}" ]; then
        release_lock "${LOCK#lockname:}"
    fi
}

node foo.js | delete_lock

Это остановит обработку данных, как только будет обнаружено первое совпадение для lockname:xxx. Затем он использует расширение параметра для удаления префикса lockname:и, при условии совпадения (, например. xxx, запускает release_lockна нем (например.release_lock "xxx").

Если вы не хотите, чтобы вызов nodeбыл прерван, или вам нужно более одного совпадения, удалите параметр -m1для grep, однако обратите внимание, что кавычки могут не работать с вашим release_lockкод (и будьте осторожны при удалении этих кавычек, вы не хотите допускать мошеннических персонажей! ).

0
02.04.2020, 15:36
1 ответ

Не хватает не команд. Вы можете поместить копии команд в контейнер. Или там эквивалент. Чего не хватает, так это доступа к информации, которая им нужна.

Вы можете добавить это мое крепление /procс хоста в контейнер. Будьте осторожны, так как это разрушит всю изоляцию . Вы можете смонтировать его только для чтения -и hidepid=2. Могут быть и другие варианты.

1
19.03.2021, 02:30

Теги

Похожие вопросы