Мои изменения в Dockerfile не применяются
В вашем репозитории есть Dockerfile, вы его отредактировали, но сборка, которую запускает Lizard, не соответствует вашему файлу.
Что это значит
Платформа сочла Dockerfile репозитория неполным и сгенерировала новый с помощью lizardpack, вместо того чтобы использовать ваш файл в исходном виде.
Почему это может произойти
Эта проверка выполняется только для сервисов с источником GitHub. Загрузки (lizard up) всегда используют корневой Dockerfile как есть.
При источнике GitHub Lizard считает корневой Dockerfile неполным, если выполняются оба условия:
- в нём есть
COPYкаталогаbuild,dist,out,.nextилиpublic, записанного без завершающего слеша, напримерCOPY dist /usr/share/nginx/html; - в нём нет строки
RUN, которая начинается сnpm,yarn,pnpm,bun,pip,pip3,bundle,cargo,go build,mvnилиgradle.
Lizard исходит из того, что эти артефакты собраны вне образа, и lizardpack создаёт заменяющий Dockerfile, включающий недостающий шаг сборки.
Ещё две настройки также обходят корневой Dockerfile вашего репозитория. Если задан dockerfilePath, Lizard использует этот файл как есть. Если он не задан, то заданный buildCommand или startCommand заставляет Lizard синтезировать Dockerfile из этих команд.
Возможные решения
Добавьте настоящий шаг сборки
Если хотите, чтобы ваш Dockerfile использовался как есть, добавьте в него реальный шаг сборки вместо копирования готового результата:
RUN npm ci && npm run buildИли заставьте использовать файл дословно
Задайте dockerfilePath. Он имеет приоритет над командами сборки и запуска при сборке образа, но заданный startCommand всё равно заменяет CMD из вашего Dockerfile во время выполнения, поэтому очистите оба поля в том же обновлении. Пустое значение очищает поле:
lizard service set api --set buildCommand= --set startCommand= --set dockerfilePath=DockerfileСм. также
- Конвейер сборки — полный порядок принятия решений о сборке.
- Справочник по настройке сборки
- Минимальный контейнер FastAPI — готовый Dockerfile для Python и случаи, когда стоит принести свой вместо сборки из исходников.
Изменение этих полей сборки может запустить сборку. Проверьте lizard events перед отправкой очередного redeploy, чтобы не запустить вторую сборку случайно.
Обновлено