SOC-Forum
Данное мероприятие — это ключевое событие в сфере информационной безопасности в России.
Вас ждет:
👉 2 дня кибербеза
👉 5 тематических секций
👉 90 докладов
Среди докладов будет следующее:
🔹 Какие задачи стоят перед CISO? Защита ключевых бизнес-процессов и способность влиять на них со стороны безопасности. Необходимые шаги и примеры из жизни
🔹 Роль ИБ в ИТ
🔹 Киберучения с организациями финансовой сферы
🔹 Стратегия ИБ в условиях цифровой трансформации
🔹 Как небольшим организациям защититься от больших угроз
🔹 Исследование группировки Lazarus при атаке на промышленные предприятия
🔹 Malware and Cryptography
и это лишь малая часть того, что будет происходить
Регистрация тут
#мероприятие
Данное мероприятие — это ключевое событие в сфере информационной безопасности в России.
Вас ждет:
👉 2 дня кибербеза
👉 5 тематических секций
👉 90 докладов
Среди докладов будет следующее:
🔹 Какие задачи стоят перед CISO? Защита ключевых бизнес-процессов и способность влиять на них со стороны безопасности. Необходимые шаги и примеры из жизни
🔹 Роль ИБ в ИТ
🔹 Киберучения с организациями финансовой сферы
🔹 Стратегия ИБ в условиях цифровой трансформации
🔹 Как небольшим организациям защититься от больших угроз
🔹 Исследование группировки Lazarus при атаке на промышленные предприятия
🔹 Malware and Cryptography
и это лишь малая часть того, что будет происходить
Регистрация тут
#мероприятие
❤2👍2🔥2
Есть инструмент set -xve для отладки bash скриптов. Это мастхев фича именно на момент, создания чего-либо т. к. не всегда логика может работать правильно, а с set -xve, можно вовремя увидеть все значения переменных и т.п. не используя мусорные конструкции, например, echo «Error in function xxx».
Конструкцию, обычно, используют так:
Ключи команды set:
x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.
Рассмотрим пример:
Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
После выполнения скрипта, получаем нумерацию строк:
Теперь если скрипт где-то вылетает с плохим статусом (либо происходит что-то другое), всегда можно узнать в какой строке это приключилось, не бегая по огромному куску кода.
Немного украшательств, экспортируем PS4:
Происходит подкрашивание запускаемых строчек.
С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.
#гайд
Конструкцию, обычно, используют так:
#!/bin/bash -xve
set -xve
Ключи команды set:
x — вывести команды и их аргументы по мере их выполнения.
v — вывести строки ввода командной строки по мере их считывания.
e — выход, если команда завершается с ненулевым статусом.
Рассмотрим пример:
Изменяем PS4 и добавляем вывод номера строки во включенный дебаг режим:
#!/bin/bash -xve
PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
bar=10
echo ${bar}
echo $((6 + 6))
После выполнения скрипта, получаем нумерацию строк:
bar=10
+(./script.sh:6): foo=10
echo ${bar}
+(./script.sh:7): echo 10
10
echo $((6 + 6))
+(./script.sh:8): echo 12
4
Теперь если скрипт где-то вылетает с плохим статусом (либо происходит что-то другое), всегда можно узнать в какой строке это приключилось, не бегая по огромному куску кода.
Немного украшательств, экспортируем PS4:
PS4='\033[0;33m+(${BASH_SOURCE}:${LINENO}):\033[0m ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
Происходит подкрашивание запускаемых строчек.
С помощью PS4 можно отладить shell-скрипт, задав при его выполнении set -x, что позволяет выводить каждую команду, а затем ее результаты. Перед каждой командой ставится знак +, эту строку подсказки «+» можно изменить, определив переменную PS4.
#гайд
❤🔥17🔥12❤3
Подборка лучших статей «Библиотеки devops’а» за октябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
☁️🧩 ТОП-10 бессерверных фреймворков
🛡️ 8 способов защиты от манипуляций на работе
📚 ТОП-8 книг по DevOps в 2023 году
❔ Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года
🤔 9 мифов об IT и найме айтишников
☁️🧩 ТОП-10 бессерверных фреймворков
🛡️ 8 способов защиты от манипуляций на работе
📚 ТОП-8 книг по DevOps в 2023 году
❔ Результаты ежегодного опроса разработчиков StackOverflow: 20+ главных инсайтов 2023 года
🤔 9 мифов об IT и найме айтишников
👍6🔥1
🤖🤔 Железный вопрос: что будет с ИТ-оборудованием в России в 2024 году
Параллельный импорт во многом спас Россию от дефицита ИТ-оборудования, но заставил потребителей понервничать и раскошелиться. Однако и эту лавочку могут прикрыть. Где тогда будем доставать железо? Как продолжает меняться этот рынок? И каково «железное» будущее ИТ в 2024-2025?
Как изменился рынок харда?
Intel, AMD, Nvidia, Dell и другие поставщики ушли из РФ, а Cisco даже уничтожила складские запасы оборудования на 1,86 млрд рублей.
Под удар попали и отечественные разработчики процессоров «Эльбрус» и «Байкал»: до февраля 2022 года они производили продукцию на тайваньской TSMC, но затем компания отказалась от сотрудничества. Осложнились отношения с зарубежными партнерами, что привело к проблемам с закупками для собственного производства.
«Спасение» нашли в параллельном импорте, однако, использование альтернативных поставщиков, рост курса доллара и усложнение логистических цепочек привели к увеличению сроков поставки и цен.
Продолжение рассказа тут
Параллельный импорт во многом спас Россию от дефицита ИТ-оборудования, но заставил потребителей понервничать и раскошелиться. Однако и эту лавочку могут прикрыть. Где тогда будем доставать железо? Как продолжает меняться этот рынок? И каково «железное» будущее ИТ в 2024-2025?
Как изменился рынок харда?
Intel, AMD, Nvidia, Dell и другие поставщики ушли из РФ, а Cisco даже уничтожила складские запасы оборудования на 1,86 млрд рублей.
Под удар попали и отечественные разработчики процессоров «Эльбрус» и «Байкал»: до февраля 2022 года они производили продукцию на тайваньской TSMC, но затем компания отказалась от сотрудничества. Осложнились отношения с зарубежными партнерами, что привело к проблемам с закупками для собственного производства.
«Спасение» нашли в параллельном импорте, однако, использование альтернативных поставщиков, рост курса доллара и усложнение логистических цепочек привели к увеличению сроков поставки и цен.
Продолжение рассказа тут
🔥13❤5👍2
🤔Ловите #дайджест, а точнее, курс по проектированию защищенных сетей ViPNet
♦️ Основы ViPNet — для чего нужен випнет, требования законодательства по использованию СКЗИ, элементы сети VIPNET
♦️ Топологии сетей ViPNet — в этом видео будут разобраны основные схемы подключения в сетях Випнет, их достоинства и недостатки
♦️ Выбор топологии сети ViPNet — примеры использования основных схем подключения в сетях Випнет
♦️ Размещение координатора в сети — координатор — как межсетевой экран; за межсетевым экраном; рядом с роутером
♦️ Выбор координатора — программный координатор, общие сведения о ПАК HW, модельный ряд ПАК HW
♦️ Установка ViPNet Administrator — алгоритм установки центра управления сетью (ЦУС) и удостоверяющего ключевого центра (УКЦ)
♦️ Основы ViPNet — для чего нужен випнет, требования законодательства по использованию СКЗИ, элементы сети VIPNET
♦️ Топологии сетей ViPNet — в этом видео будут разобраны основные схемы подключения в сетях Випнет, их достоинства и недостатки
♦️ Выбор топологии сети ViPNet — примеры использования основных схем подключения в сетях Випнет
♦️ Размещение координатора в сети — координатор — как межсетевой экран; за межсетевым экраном; рядом с роутером
♦️ Выбор координатора — программный координатор, общие сведения о ПАК HW, модельный ряд ПАК HW
♦️ Установка ViPNet Administrator — алгоритм установки центра управления сетью (ЦУС) и удостоверяющего ключевого центра (УКЦ)
👍6❤1👏1
#вопросы_с_собеседования
Что такое major and minor numbers блочных устройств, чему они соответствуют?
Согласно выводу
```crw-rw-rw- 1 root root 1, 3 Feb 23 1999 null
crw------- 1 root root 10, 1 Feb 23 1999 psaux
crw------- 1 rubini tty 4, 1 Aug 16 22:22 tty1
crw-rw-rw- 1 root dialout 4, 64 Jun 30 11:19 ttyS0
crw-rw-rw- 1 root dialout 4, 65 Aug 16 00:00 ttyS1
crw------- 1 root sys 7, 1 Feb 23 1999 vcs1
crw------- 1 root sys 7, 129 Feb 23 1999 vcsa1
crw-rw-rw- 1 root root 1, 5 Feb 23 1999 zero```
Цифры 1, 10, 4 и 7 — старшие, мажорные номера.
Цифры 1, 3, 5, 64, 65 и 129 — минорные номера
Старший номер идентифицирует драйвер, который связан с устройством.
null и zero управляются драйвером 1.
tty1, ttyS0, ttyS1 — управляются драйвером четыре. Это виртуальные консоли и терминалы.
Как правило один старший номер — один драйвер
Младший же номер используется ядром что бы определить о каком устройстве идет речь. И можно получить ссылку на устройство через ядро. Само ядро ничего про них не знает, знают только то, что здесь ссылаются на устройства, которыми драйвер управляют.
Что такое major and minor numbers блочных устройств, чему они соответствуют?
🤩16❤4👾3🥰2
🧑🎓😎 Еще одна серия с мероприятия OFFZONE 2023
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Разнообразие фаззинг-ферм, и зачем делать свою
Тема фаззинга с каждым годом становится все популярнее, и инструментов, помогающих в этом, также становится все больше. Среди них особенно можно выделить фаззинг-фермы. Они представляют собой некоторую оркестрацию над множеством фаззинг-движков, которые помогают организовать непрерывное или прерываемое фаззинг-тестирование. Изначально такие фаззинг-фермы чаще всего являются набором из нескольких скриптов, но по мере необходимости они эволюционируют до чего‑то колоссального.
Авторы доклада рассмотрят наиболее популярные решения и расскажут про создание своей фаззинг-фермы и о том, чем она отличается от других
#видео
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Разнообразие фаззинг-ферм, и зачем делать свою
Тема фаззинга с каждым годом становится все популярнее, и инструментов, помогающих в этом, также становится все больше. Среди них особенно можно выделить фаззинг-фермы. Они представляют собой некоторую оркестрацию над множеством фаззинг-движков, которые помогают организовать непрерывное или прерываемое фаззинг-тестирование. Изначально такие фаззинг-фермы чаще всего являются набором из нескольких скриптов, но по мере необходимости они эволюционируют до чего‑то колоссального.
Авторы доклада рассмотрят наиболее популярные решения и расскажут про создание своей фаззинг-фермы и о том, чем она отличается от других
#видео
❤🔥10🥰5👍3
💥❗️❗️ ТОП уязвимостей системного программирования
В этой подборке приводятся примеры того, «как не надо» делать и «как надо». В качестве «подопытных» рассматриваются языки: C++, C и Rust.
Материал включает в себя:
🎯 Buffer overflow
🎯 Pointer Initialization
🎯 Incorrect Type Conversion
🎯 Format String Vulnerability
В этой подборке приводятся примеры того, «как не надо» делать и «как надо». В качестве «подопытных» рассматриваются языки: C++, C и Rust.
Материал включает в себя:
🎯 Buffer overflow
🎯 Pointer Initialization
🎯 Incorrect Type Conversion
🎯 Format String Vulnerability
Devsecopsguides
OWASP API Security Top 10 2023
API1:2023 - Broken Object Level Authorization 1
👍16🔥6❤2
🧜🏊♂️ Погружаемся в тему защиты контейнеризации, или как обучить тому, чему нигде не учат
Суть проблемы
Использование контейнеров дает дополнительные преимущества — начиная от стадии разработки, во время которой можно, писать разные сервисы на разных ЯП, заканчивая стадией эксплуатации, во время которой можно масштабировать приложения сообразно поступающей на вход нагрузке. Но при этом использование контейнеров видоизменяет подходы к обеспечению ИБ, ибо защита контейнеризированных приложений имеет некоторые особенности:
👉 новые объекты защиты;
👉 новые векторы реализации угроз;
👉 новые уязвимости;
👉 особенности технологий (например, время жизни контейнеров может измеряться секундами);
👉 особенности/ограничения средств защиты. Например, мы не можем поставить в каждый 👉 контейнер антивирус или наложенное СЗИ от НСД;
👉 дефицит толковых специалистов.
Защиту контейнеризированных приложений нельзя рассматривать отдельно от организации цикла безопасной разработки (SDLC). Эти два подхода комплементарно дополняют друга: если уменьшается количество уязвимостей в разработанном ПО, сокращается поверхность атаки при развертывании ПО в продуктивной среде.
Продолжение здесь
#почитать
Суть проблемы
Использование контейнеров дает дополнительные преимущества — начиная от стадии разработки, во время которой можно, писать разные сервисы на разных ЯП, заканчивая стадией эксплуатации, во время которой можно масштабировать приложения сообразно поступающей на вход нагрузке. Но при этом использование контейнеров видоизменяет подходы к обеспечению ИБ, ибо защита контейнеризированных приложений имеет некоторые особенности:
👉 новые объекты защиты;
👉 новые векторы реализации угроз;
👉 новые уязвимости;
👉 особенности технологий (например, время жизни контейнеров может измеряться секундами);
👉 особенности/ограничения средств защиты. Например, мы не можем поставить в каждый 👉 контейнер антивирус или наложенное СЗИ от НСД;
👉 дефицит толковых специалистов.
Защиту контейнеризированных приложений нельзя рассматривать отдельно от организации цикла безопасной разработки (SDLC). Эти два подхода комплементарно дополняют друга: если уменьшается количество уязвимостей в разработанном ПО, сокращается поверхность атаки при развертывании ПО в продуктивной среде.
Продолжение здесь
#почитать
👍7🥰2❤1
🤔🤝 Знакомство с Rego
Rego — это декларативный язык запросов от создателей платформы Open Policy Agent (OPA).
Rego используется для написания policy as code, которая применяет методы программирования, такие как контроль версий и модульное проектирование, для оценки ресурсов облака и инфраструктуры как кода (IaC).
OPA — это механизм, который оценивает политику как код, написанный на Rego. Это «отделяет принятие политических решений от применения политики», что означает, что он принимает решение о том, соответствует ли ресурс политике, поэтому не нужно жестко прописывать эти проверки в коде приложения.
Продолжение здесь
#туториал
Rego — это декларативный язык запросов от создателей платформы Open Policy Agent (OPA).
Rego используется для написания policy as code, которая применяет методы программирования, такие как контроль версий и модульное проектирование, для оценки ресурсов облака и инфраструктуры как кода (IaC).
OPA — это механизм, который оценивает политику как код, написанный на Rego. Это «отделяет принятие политических решений от применения политики», что означает, что он принимает решение о том, соответствует ли ресурс политике, поэтому не нужно жестко прописывать эти проверки в коде приложения.
Продолжение здесь
#туториал
❤4👍2👏1
#вопросы_с_собеседования
Каким образом осуществляется монтирование ФС? Как можно посмотреть список примонтированных ФС? (2 — 3 способа)
mkfs -t ext3 /dev/hda8
mount — показать все файловые системы
mount -t ext4 — покажет ext4 файловые системы
Если нужно примонтировать, например, usb
Создаем файлик и монтируем
sudo mkdir -p /media/usb
sudo mount /dev/sdd1 /media/usb
Каким образом осуществляется монтирование ФС? Как можно посмотреть список примонтированных ФС? (2 — 3 способа)
mount — показать все файловые системы
mount -t ext4 — покажет ext4 файловые системы
Если нужно примонтировать, например, usb
Создаем файлик и монтируем
sudo mkdir -p /media/usb
sudo mount /dev/sdd1 /media/usb
❤11👍6🔥1
🤔 #дайджест сканеров для поиска уязвимостей в системе безопасности и неправильных настроек в Kubernetes
♦️ Checkov — сканирует конфигурации облачной инфраструктуры, чтобы обнаружить неправильные настройки перед их развертыванием
♦️ KubiScan — инструмент для сканирования кластера Kubernetes на наличие опасных разрешений в модели авторизации управления доступом на основе ролей (RBAC) Kubernetes
♦️ Kubesec — анализ рисков безопасности ресурсов Kubernetes
♦️ Kube-bench — инструмент, проверяющий, безопасно ли развернут Kubernetes, выполняя проверки, описанные в тесте CIS Kubernetes Benchmark
♦️ Kube-hunter — ищет слабые места в системе безопасности кластеров Kubernetes
♦️ Checkov — сканирует конфигурации облачной инфраструктуры, чтобы обнаружить неправильные настройки перед их развертыванием
♦️ KubiScan — инструмент для сканирования кластера Kubernetes на наличие опасных разрешений в модели авторизации управления доступом на основе ролей (RBAC) Kubernetes
♦️ Kubesec — анализ рисков безопасности ресурсов Kubernetes
♦️ Kube-bench — инструмент, проверяющий, безопасно ли развернут Kubernetes, выполняя проверки, описанные в тесте CIS Kubernetes Benchmark
♦️ Kube-hunter — ищет слабые места в системе безопасности кластеров Kubernetes
👍17🔥4❤2
∞ Дорожная карта DevOps-инженера в 2023 году
Дорожная карта — это комплексный процесс изменения и развития карьеры сотрудника внутри организации. Они включают в себя изменение должности, повышение по иерархической лестнице, переход на другую функциональную область или отдел, а также изменение места работы.
Этот процесс может быть вертикальным, когда сотрудник переходит на более высокую должность, или горизонтальным — сотрудник меняет функциональную область или отдел, но остается на той же должности.
Подробная и актуальная дорожная карта по DevOps ждет вас здесь.
📌 Примеры дорожных карт и полезные материалы по теме:
👨💻 Как стать фрилансером и где найти первый заказ: дорожная карта
🍏 Карьерный гид от новичка до профи: дорожная карта iOS-разработчика
🧔 Повышение до тимлида: дорожная карта
🐍 Дорожная карта Python-разработчика
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
#гайд
Дорожная карта — это комплексный процесс изменения и развития карьеры сотрудника внутри организации. Они включают в себя изменение должности, повышение по иерархической лестнице, переход на другую функциональную область или отдел, а также изменение места работы.
Этот процесс может быть вертикальным, когда сотрудник переходит на более высокую должность, или горизонтальным — сотрудник меняет функциональную область или отдел, но остается на той же должности.
Подробная и актуальная дорожная карта по DevOps ждет вас здесь.
📌 Примеры дорожных карт и полезные материалы по теме:
👨💻 Как стать фрилансером и где найти первый заказ: дорожная карта
🍏 Карьерный гид от новичка до профи: дорожная карта iOS-разработчика
🧔 Повышение до тимлида: дорожная карта
🐍 Дорожная карта Python-разработчика
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
#гайд
👍8❤3🔥1
☝️🕒 Увеличение времени сессии SSH
Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась.
На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.
#гайд
Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась.
На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.
#гайд
❤17👍9
#!/bin/bashДля получения имени функции из самой функции, можно воспользоваться переменной ${FUNCNAME[*]}.
deploy() {
# здесь хотим получить "deploy"
}
Элемент с индексом 0 это имя любой выполняемой функции в данный момент.Элемент с самым большим индексом будет называться main.
deploy() {
echo ${FUNCNAME[0]}
}
Переменная FUNCNAME существует только во время выполнения скрипта. Если самостоятельно задать переменную FUNCNAME, это ничего не даст и все равно выведется эталонное имя функции.
При обращении к массиву без индекса, будет возвращен первый элемент массива текущий функции. Но так же будет содержать все остальные функции в стеке вызова.
Например:
exp1() {
echo ${FUNCNAME}
}
exp2() {
echo ${FUNCNAME[*]}
}
Не обязательно указывать индекс, все будет корректно работать и так. Это больше как правила хорошего тона. Как точка с запятой в конце строки, которая не влияет на функционал и никак не интерпретируется.
В zsh это называется funcstack, это тот же массив всех функций скрипта.
deploy() {
echo $funcstack[1]
}
Еще переменная FUNCNAME используется с BASH_LINENO и BASH_SOURCE, об этом можно почитать в официальной документации.
BASH_SOURCE - переменная, содержит путь к исходному файлу оболочки, полезна при отладке и анализе ошибок.
BASH_LINENO - переменная, содержит номер строки на которой произошла ошибка в текущем скрипте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍9🌚1
🧑🎓✍️ Certified Kubernetes Security Specialist — мой опыт сдачи экзамена
Автор материала успешно сдал экзамен на этот сертификат. Его путь был не совсем гладким, и в статье он расскажет все подробности.
CKS самый сложный в линейке практических экзаменов по Kubernetes от CNCF. К сдаче допускаются кандидаты, уже подтвердившие себя в экзамене Certified Kubernetes Administrator.
Основой подготовки кроме доки Kubernetes стали самые популярные по теме ресурсы: https://kodekloud.com/, а также https://killer.sh и https://killercoda.com/.
Также было несколько репозиториев с github, информация в них большей частью устарела, т.к. и версия Kubernetes, и версия экзамена не стоят на месте.
Продолжение истории ищите здесь
#гайд
Автор материала успешно сдал экзамен на этот сертификат. Его путь был не совсем гладким, и в статье он расскажет все подробности.
CKS самый сложный в линейке практических экзаменов по Kubernetes от CNCF. К сдаче допускаются кандидаты, уже подтвердившие себя в экзамене Certified Kubernetes Administrator.
Основой подготовки кроме доки Kubernetes стали самые популярные по теме ресурсы: https://kodekloud.com/, а также https://killer.sh и https://killercoda.com/.
Также было несколько репозиториев с github, информация в них большей частью устарела, т.к. и версия Kubernetes, и версия экзамена не стоят на месте.
Продолжение истории ищите здесь
#гайд
👍6🔥2
🤔🎯 Топ-10 распространенных проблем с Dockerfile linting
Как залинтить Dockerfile
Можно использовать hadolint. Чтобы залинтить Dockerfile on-demand, следует передать флаг --lint во время сборки, который будет запущен перед сборкой.
Еще вариант — запустить hadolint локально или использовать hadolint Dockerfile linter UI. Чтобы запустить hadolint локально, вы можете либо установить его через brew, либо использовать образ Docker и вставить в него свой Dockerfile.
После того, как разобрались с линтерами переходим к ошибкам, которые найдете тут
#гайд
Как залинтить Dockerfile
Можно использовать hadolint. Чтобы залинтить Dockerfile on-demand, следует передать флаг --lint во время сборки, который будет запущен перед сборкой.
Еще вариант — запустить hadolint локально или использовать hadolint Dockerfile linter UI. Чтобы запустить hadolint локально, вы можете либо установить его через brew, либо использовать образ Docker и вставить в него свой Dockerfile.
После того, как разобрались с линтерами переходим к ошибкам, которые найдете тут
#гайд
🔥3👍1