Ошибка ответа от демона: в текущем контексте нет стадии сборки
Я пытался запустить контейнер с kvm, используя код, который я нашел здесь: https://github.com/jessfraz/dockerfiles/tree/master/kvm. Я создал новый каталог, cd'd в него и создал файл докеров и start.sh. Когда я дал заказ на сборку, он выдал следующее сообщение об ошибке:
Отправка контекста сборки на Docker daemon 3.584kB Ответ на ошибку от демона: нет стадии сборки в текущем контексте
Я понятия не имею, что это значит, и я не мог ответить Google. Любая помощь будет принята с благодарностью.
Ответы
Ответ 1
У вашего файла dockerfile есть: FROM repo/image
Как первая строка? Я получил эту ошибку, когда забыл указать изображение докеры, из которого я строил.
Даже если вы создаете "исходное изображение", вам все равно нужно указать FROM scratch
как первую строку файла docker.
Ответ 2
Обычно это происходит из-за текста, который написан перед командой FROM. Попробуйте удалить комментарии в файле docker и снова создать.
Для справки https://github.com/moby/buildkit/issues/164
Ответ 3
Проблема устранена. Когда я пошел в dockerfile для редактирования кода, я заметил, что я случайно раскоментировал первую строку. Глупая ошибка, я знаю. Спасибо вам за помощь.
Ответ 4
Это сообщение появляется, когда вы объявляете переменную окружения (ENV
) перед объявлением FROM
.
Например:
# Define variables.
ARG PORT
ENV SERVER_PORT=$PORT
# Install minimal Python 3.
FROM python:3.7-alpine
# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt
# Copy app source code.
COPY src/ /app
...
Чтобы решить эту проблему, поменяйте местами объявления, чтобы любые переменные среды устанавливались после FROM
.
# Install minimal Python 3.
FROM python:3.7-alpine
# Define variables.
ARG PORT
ENV SERVER_PORT=${PORT}
# Install Python requirements.
COPY requirements.txt /
RUN pip install -r /requirements.txt
# Copy app source code.
COPY src/ /app
...
Ответ 5
Согласно документации на docs.docker.com, первая строка без комментариев в вашем Dockerfile должна быть строкой FROM
. Цитировать документы:
Инструкция FROM
инициализирует новый этап сборки и устанавливает базовый образ для последующих инструкций. Таким образом, действительный Dockerfile
должен начинаться с инструкции FROM
.