Dockerfile WORKDIR и COPY: исправление путей проекта

Практическая задача Docker: Практикум: Dockerfile из чужого проекта. Условие описывает предоставленные файлы, доступный базовый образ и требования к сборке или запуску. Изменяйте только разрешённые файлы. Проверьте пути, рабочую директорию, пользователя и различие настроек сборки и запуска. Задача помогает закрепить поведение Dockerfile на конкретном проекте; объяснения и дальнейшая практика находятся в полном курсе Docker для разработчика.

Исправить пути чужого проекта

В выданном проекте скрипт читает data/release.txt относительно текущего каталога. Стартовый Dockerfile собирается, но не согласует расположение файлов, рабочий каталог и команду запуска. Исправьте только Dockerfile; файлы проекта менять нельзя.

Контекст сборки — корень выданного рабочего пространства. В нём находятся project/bin/show.sh и project/data/release.txt. Для этой отдельной задачи используется готовый busybox:1.36: установка зависимостей и сетевые запросы не нужны. Пути отличаются от примера урока; примените тот же способ диагностики.

Требования к полученному образу:

  • рабочий каталог — /srv/report;
  • скрипт расположен по пути /srv/report/show.sh, данные — /srv/report/data/release.txt;
  • стандартная команда в exec-форме запускает sh с аргументом show.sh;
  • новый контейнер без переопределения команды завершается с кодом 0 и печатает release=2026.10.

Сопоставьте источники COPY с корнем контекста, затем проверьте пути назначения и относительную команду. Ручные исправления внутри контейнера не заменяют исправленный Dockerfile.

Автопроверка собирает ваш Dockerfile и проверяет перечисленные пути, рабочий каталог, команду и результат нового контейнера. Она не доказывает порядок инструкций или строгость exec-формы по одному результату запуска: форму команды дополнительно проверьте в своём Dockerfile. Это отдельная offline-задача на пути и запуск, а не проверка всего проекта HTTP-сервиса.

РешениеDockerfile

Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.

Отправьте решение, чтобы увидеть результаты тестов.

Связанные задачи