Докеры изображения и Terraform [duplicate]

Это чистое решение для JavaScript без каких-либо библиотек или плагинов:

document.addEventListener('click', function (e) {
    if (hasClass(e.target, 'bu')) {
        // .bu clicked
        // Do your thing
    } else if (hasClass(e.target, 'test')) {
        // .test clicked
        // Do your other thing
    }
}, false);

, где hasClass -

function hasClass(elem, className) {
    return elem.className.split(' ').indexOf(className) > -1;
}

Live demo

Кредит относится к Dave и Sime Vidas

Использование более современных JS, hasClass может быть реализовано как:

function hasClass(elem, className) {
    return elem.classList.contains(className);
}

8
задан Sheena 15 March 2017 в 10:30
поделиться

1 ответ

Существуют две отличия между формой оболочки и формой exec. Согласно документация , форма exec является предпочтительной формой. Это два отличия:

Форма exec анализируется как массив JSON, что означает, что вы должны использовать двойные кавычки (") вокруг слов, а не одиночных кавычек (').

В отличие от формы оболочки форма exec не вызывает командную оболочку. Это означает, что нормальной обработки оболочки не происходит. Например, CMD ["echo", "$ HOME"] не будет делать замену переменных в $ HOME. Если вы хотите обработать оболочку, то либо используйте форму оболочки, либо выполните оболочку напрямую, например: CMD ["sh", "-c", "echo $ HOME"]. При использовании формы exec и непосредственного выполнения оболочки, как и в случае с формой оболочки, это оболочка, которая выполняет расширение переменной среды, а не докер.

Некоторые дополнительные тонкости здесь являются:

Форма exec позволяет избежать перебора строк оболочки и команд RUN с использованием базового изображения, которое не содержит указанный исполняемый файл оболочки.

В shell form, вы можете использовать \ (обратную косую черту), чтобы продолжить одну инструкцию RUN на следующую строку.

Существует также третья форма для CMD :

CMD ["param1", "param2"] (как параметры по умолчанию для ENTRYPOINT)

Кроме того, форма exec необходима для CMD, если вы используете его как параметры / аргументы для ENTRYPOINT, которые должны быть перезаписаны.

8
ответ дан hashlash 18 August 2018 в 08:32
поделиться
Другие вопросы по тегам:

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