Pull to refresh

Comments 15

Такой интересный вопрос. Использовали ли вы интернет, для поиска, во время выполнения задач? Вы пробовали данные задачи скармливать локальной LLM модели, для понимания сложности таких задач для малых нейросетей?

Именно локальный LLM не использовал, а вот обычные облачные да, также использовал официальную документацию от кубера, это кстати даже на экзамене CKA разрешено. Думаю, что llm потянет такую задачу, но все равно править и тестировать нужно будет. Врядли можно дать задачу, уйти пить чай и вернуться с готовым решением.

Вижу, что докерфайлы также написаны ллмкой. Я бы уже на этом этапе такого кандидата отмел.

какая странная интерпретация последней задачи.. явно же имелось в виду запретить доступ в интернет для всего контейнера в целом, а не только для apt update. apt это только способ проверки

Я тоже так сначала подумал, однако я не понял как заблокировать интернет внутри контейнера без капы NET_ADMIN. У меня получилось только сломать dns. Если знаете способы пожалуйста поделитесь, я протестирую.

через LD_PRELOAD только..
вообще задание само по себе конечно крайне наркоманское, непонятно что проверяют и зачем

Спасибо за информацию, слышал про LD_PRELOAD, но на практике не сталкивался.

вообще задание само по себе конечно крайне наркоманское, непонятно что проверяют и зачем

проверяют знания работы сети/процессов внутри контейнера, имхо. Т.е. понимает ли человек, что оно работает по разному внутри контейнера и за его пределами.

Не могу придумать ни одного практического применения такой задачи, кроме как вопроса для тестового задания ))

На первом пункте уже кроется подвох. Python или Go , здесь нужно знать контекст, потому что при грамотной сборке на го, образ получится около 2 мб, вместо около 20 на пайтоне.

Это очень притянуто за уши. Потому что есть вагон других характеристик - время разработки, время выполнения сборки, и пр. Если я знаю py, но не знаю go, то тестовое задание на первом будет выполнено за 15 условных минут, а на втором за 2 часа. По этому, если не даны какие-то конкретные критерии то относиться надо как к "пишите на том, что знаете лучше". Абсолютно не ясно почему вы решили что объем образа это основной критерий.

Python/Go, которое слушает входящие соединения на порту 8000

if __name__ == "__main__":
    ThreadingHTTPServer(("0.0.0.0", 8003), Handler).serve_forever()
...
EXPOSE 8003

Поздравляю, вы завалили первое задание =)

Да здесь мой косяк, собирал много образов помимо этого и порт проморгал. По поводу притянуто за уши, поскольку в условии нет других данных, я выбрал этот критерий, потому что могу. А так вы в праве выбрать любой другой.

Гораздо критичнее объема образа то, что человек не оставил сборку от рута и выкинул лишние зависимости

Разве в 2026 это не базовый минимум про который пишут в каждой статье про dockerfile?

Вот наличие пути для healthcheck это плюс, хотя и не входило в ТЗ, но при этом хардкод, get_container_ip() и8.8.8.8.

Удивительно видеть Homebrew, накатанный поверх дистрибутива Void Linux

изнутри контейнера заблокировать ему выход в сеть интернет, команды блокировки с описанием приложить к задаче;

Нам нужно заблокировать интернет именно для утилиты apt.

на основании чего был сделан такой вывод ? Как по мне - то абсолютно неверный, соответственно и предложенный вариант решения - неверный. Ибо ему, имеется ввиду контейнеру, а не ей (утилите/команде)

А в целом, если рассматривать таки изначальную постановку задачи - "изнутри контейнера заблокировать ему выход в сеть интернет", то решения у задачи нет, имхо

Можно поиграться с LD_PRELOAD и делать перехват сonnect(). Но будет работать только для динамически слинкованных бинарей, обходится статикой.

Здесь согласен и возможно мои способы неверные, описание задания сбивает с толку. Крайне мало маневра для блокировки изнутри контейнера. Но в таком случае, допустим ld preload сработает, по условиям задачи нужно найти ещё 1 способ. Я поспрашивал у друзей , но способ так и не нашелся. Вполне возможно, что это задание не имеет решения, но считаю, что все равно полезно знать про nsswitch, resolv.conf, etc/hosts

Sign up to leave a comment.

Articles