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-сервиса.
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
