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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python15 655
  • Облачные технологии12 351
  • QA вакансии3 417
  • Backend вакансии1 967
  • Инженер данных1 510
  • Продакт-менеджер997

Разработка

  • Android1 787
  • iOS1 653
  • AI вакансии918
  • Fullstack вакансии830
  • Frontend вакансии698
  • Mobile вакансии36

По стеку

  • Go8 449
  • Java5 599
  • Node.js1 779
  • Kotlin1 475
  • Rust1 398
  • .NET1 370
  • PHP574
  • C#436
  • C++424

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

  • Kubernetes6 890
  • DevOps вакансии5 099
  • Linux-инфраструктура5 029
  • Terraform / IaC3 813
  • CI/CD1 889
  • Мониторинг и Observability1 705
  • SRE531
  • Кибербезопасность320

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

  • Data Scientist910
  • Аналитик данных791
  • Бизнес-аналитик785
  • Системный аналитик101

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

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

По регионам

  • Вакансии в США44 089
  • Вакансии в Европе19 797
  • Вакансии в Канаде4 253
  • Работа в России3 875

По формату

  • Удалённые вакансии71 470
  • Релокация в США43 699
  • Гибридная работа10 743
  • Офисная работа6 866

По уровню

  • Senior вакансии39 689
  • Middle вакансии19 381
  • Junior вакансии6 450

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

Все компании
  • Wise193 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis45 вакансий
  • Spotify37 вакансий
  • 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

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

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