Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 793новые вакансии за сутки·93 582вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 282
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python16 845
  • Облачные технологии13 724
  • QA вакансии3 439
  • Backend вакансии2 084
  • Инженер данных1 763
  • Продакт-менеджер1 196

Разработка

  • Android1 845
  • iOS1 689
  • Fullstack вакансии960
  • AI вакансии950
  • Frontend вакансии736
  • Mobile вакансии44

По стеку

  • Go8 619
  • Java6 379
  • Node.js1 971
  • .NET1 640
  • Kotlin1 599
  • Rust1 443
  • PHP670
  • C#650
  • C++536

DevOps и инфраструктура

  • Kubernetes7 591
  • DevOps вакансии5 865
  • Linux-инфраструктура5 413
  • Terraform / IaC4 162
  • CI/CD2 991
  • Мониторинг и Observability1 752
  • SRE558
  • Кибербезопасность424

Аналитика и данные

  • Data Scientist1 087
  • Бизнес-аналитик910
  • Аналитик данных849
  • Системный аналитик148

Другие направления

  • Проджект-менеджер557
  • UI/UX дизайн139
  • Ручное тестирование14

По регионам

  • Вакансии в США45 355
  • Вакансии в Европе22 646
  • Вакансии в Канаде4 483
  • Работа в России3 902

По формату

  • Удалённые вакансии75 369
  • Релокация в США45 357
  • Гибридная работа12 010
  • Офисная работа7 029

По уровню

  • Senior вакансии42 335
  • Middle вакансии20 999
  • Junior вакансии6 760

Сейчас нанимают

Все компании
  • Wise194 вакансии
  • Rakuten189 вакансий
  • ASML163 вакансии
  • Grab139 вакансий
  • Celonis40 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo19 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К подготовке по вакансии←К теме DockerВсе вопросы
DockerMiddleКодинг

Почему RUN apt-get update без apt-get install в той же строке — это плохо?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Отдельный RUN apt-get update кэшируется независимо: следующий install может работать с устаревшими package lists. Правило: update, install и очистка /var/lib/apt/lists/* — всегда в одной инструкции RUN.

Правильный паттерн

Объединяйте update, install и удаление кэша в одну инструкцию RUN. Это гарантирует, что package metadata и установка всегда выполняются вместе и никогда не рассинхронизируются.

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        curl \
        jq \
        ca-certificates \
    && rm -rf /var/lib/apt/lists/*

Флаг --no-install-recommends отсекает рекомендуемые пакеты и заметно уменьшает размер слоя. Очистка /var/lib/apt/lists/* удаляет индексы, которые больше не нужны в runtime, — это снижает размер итогового image.

Почему разделение — проблема кэша

Docker build cache привязывается к инструкции и её входным данным. Если RUN apt-get update вынесен в отдельную инструкцию и содержимое строки не изменилось, builder считает слой валидным и берёт из кэша. Следующий RUN apt-get install -y curl выполняется заново, но опирается на устаревшие package lists из кэшированного слоя.

Результат: в образе могут оказаться устаревшие версии пакетов, а при изменении зеркал — ошибка 404 вида E: Unable to fetch some archives. Образ при этом собирается без предупреждений.

Когда update в отдельном слое всё же встречается

В базовых образах вроде debian:bookworm иногда делают RUN apt-get update на отдельном шаге намеренно — как отдельный base layer, который потом замораживают. Это допустимо только если за ним сразу идёт отдельный long-lived build stage и его digest закреплён. В обычных application Dockerfile такой подход неоправдан.

Подводные камни

  • Добавление --no-cache в docker build — не решение: это медленно, прячет проблему и не даёт кэша для CI.
  • Удаление /var/lib/apt/lists/* отдельным RUN — не помогает: списки уже записаны в предыдущий layer, слой immutable.
  • Версионирование пакетов: apt-get install -y curl=7.88.* повышает воспроизводимость, но может сломаться при смене зеркала — нужен отдельный механизм контроля.
  • Если base image обновился и сменился apt репозиторий — ваш кэшированный update-слой стал недействителен, но builder об этом не знает.
  • В multi-stage build повторяйте update + install в каждом stage, где нужны пакеты: stage не наследует apt state.
  • apt-get upgrade внутри образа нежелателен — он вносит недетерминированные изменения; лучше обновить base image тег.
  • При использовании BuildKit cache mount (--mount=type=cache,target=/var/cache/apt) rm -rf /var/lib/apt/lists/* не нужен в том же RUN, но кэш тогда не попадёт в image layer, а останется на builder.
  • Никогда не кладите apt-get update в ONBUILD — child images будут наследовать неактуальный слой.

Типичные ошибки

  • Разносить apt-get update, install и cleanup по разным RUN.
  • Использовать docker build --no-cache как постоянный способ обхода плохого кэша.
  • Очищать /var/lib/apt/lists в следующем слое и ждать уменьшения старого слоя.

Что проверяет интервьюер

  • Понимает cache reuse для неизменившейся RUN инструкции.
  • Объясняет устаревшие package lists и mirror errors.
  • Пишет корректный update/install/cleanup паттерн.

Как вы знаете этот вопрос?

Проверить себя по теме Docker →

Источники

  • https://docs.docker.com/reference/dockerfile/
  • https://docs.docker.com/build/
←Предыдущий вопросКак работает кеш слоёв при docker build? Почему добавление одной строки в package.json ломает кеш для npm install?Следующий вопрос→Чем CMD отличается от ENTRYPOINT? Что произойдёт, если задать оба?

Связанные темы

Dockerbuild reliabilityDockerfile best practicesLinux packages

Вакансии с этим навыком

Docker вакансии
  • Lead DevOps
  • Инженер по данным (Python)
  • Middle DevOps Engineer
  • Automation QA Engineer (Java)
  • Junior QA Engineer (Manual + AI Automation)

Частые вопросы на собеседовании

  • Как ты организуешь tagging образов в проде? Почему latest в проде — плохо?
  • Чем named volume отличается от bind mount и от tmpfs? Когда что использовать?
  • Зачем контейнер должен писать логи в stdout/stderr, а не в файл?
  • Контейнер в Restarting бесконечно. Алгоритм действий?