Практика Dockerfile: пути, запуск, права и multi-stage

Dockerfile собирается, а контейнер сразу завершается, не находит файл или получает permission denied. В этой подборке шесть небольших проектов: у каждого есть исходные файлы, требования к образу и проверка результата. Менять нужно Dockerfile.

Сначала пути, затем запуск и права

Начните с COPY и WORKDIR. У источника COPY точка отсчёта — контекст сборки, а у относительной команды внутри контейнера — рабочий каталог. Если перепутать эти два места, файл может попасть в образ, но программа его не найдёт.

Затем переходите к ENTRYPOINT и CMD: научитесь отделять исполняемую команду от её аргументов. Следующая задача разводит настройки времени сборки и окружение запущенного процесса. После этого настройте запуск без root и соберите финальный образ из результата другой стадии.

Порядок упражнений

  1. Dockerfile WORKDIR, COPY и RUN: файл в новом образе.
  2. Dockerfile WORKDIR и COPY: исправление путей проекта.
  3. Docker ENTRYPOINT и CMD: команда и аргументы — задача.
  4. Docker ARG и ENV: настройки при сборке и запуске — задача.
  5. Dockerfile USER: запись файла с ограниченными правами.
  6. Multi-stage Dockerfile: перенос готового артефакта — задача.

В каждом упражнении сначала прочитайте требования, затем исправьте Dockerfile и запустите проверку. Исходные файлы даны в рабочем пространстве задания. Если условие предлагает дополнительные локальные команды, выполните их отдельно: они проверяют другой режим запуска.

Чтобы продолжить с контейнеризацией приложения, сетью, томами и Compose, откройте курс Docker и Docker Compose. Здесь можно начать с отдельного упражнения и посмотреть, подходит ли вам такой формат практики.