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

+215новых вакансий за сутки·50 276вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python5 381
  • Облачные технологии4 755
  • QA вакансии1 688
  • Android1 070
  • Инженер данных807
  • Продакт-менеджер316

Разработка

  • iOS1 023
  • Backend вакансии961
  • Fullstack вакансии432
  • Frontend вакансии352
  • AI вакансии336
  • Mobile вакансии27

По стеку

  • Go2 906
  • Java1 785
  • Kotlin893
  • Node.js625
  • .NET435
  • Rust393
  • C++242
  • PHP217
  • C#191

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

  • Kubernetes2 712
  • Linux-инфраструктура2 119
  • DevOps вакансии1 675
  • Terraform / IaC1 631
  • CI/CD879
  • Мониторинг и Observability735
  • SRE231
  • Кибербезопасность46

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

  • Аналитик данных467
  • Data Scientist451
  • Бизнес-аналитик344
  • Системный аналитик59

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

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

По регионам

  • Вакансии в США23 536
  • Вакансии в Европе9 284
  • Работа в России3 618
  • Вакансии в Канаде2 126

По формату

  • Удалённые вакансии41 094
  • Релокация в США23 536
  • Гибридная работа4 294
  • Офисная работа2 756

По уровню

  • Senior вакансии20 239
  • Middle вакансии11 606
  • Junior вакансии3 630

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

Все компании
  • Wise158 вакансий
  • Spotify15 вакансий
  • Celonis11 вакансий
  • Adyen9 вакансий
  • Monzo3 вакансии

Вакансии из 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 будут наследовать неактуальный слой.

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

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

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

  • Разносить 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 вакансии
  • Senior Python Engineer (Embedded project) (#5821)
  • Middle AI/ML Engineer (#5827)
  • Senior DataOps Engineer (#5858)
  • Voice AI Engineer (Real-Time Speech) (#5861)
  • Senior / Lead PHP Engineer with AI skills (#5887)