Error Response from Daemon: No Build Stage in Current Context

I was trying to run a container with kvm, using the code I found here: I created a new directory, cd'd into it and created the dockerfile and start.sh files. When I gave order to build, it outputted the following error message:

Sending build context to Docker daemon  3.584kB
Error response from daemon: No build stage in current context

I have no idea what this means and I couldn't Google an answer. Any help?

10 Answers

Does your dockerfile have a: FROM repo/image

As the first line? I got this error when I forgot to specify the docker image that I was building from.

Even if you're building a "source image" you still need to specify FROM scratch as the first line of the dockerfile.

6

This usually happens because of the text that is written before the FROM command. Try removing the comments in your dockerfile and build again.

For reference

2

This message appears when you declare an environment variable (ENV) before declaring FROM.

For example:

# 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
...

To resolve this, swap the declarations so that any environment variables are set after 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
...
0

According to the documentation on docs.docker.com, the first non-comment line of your Dockerfile must be the FROM line. To quote the docs:

The FROM instruction initializes a new build stage and sets the Base Image for subsequent instructions. As such, a valid Dockerfile must start with a FROM instruction.

1

If you are still using the deprecated MAINTAINER keyword, you must have the FROM command as the first command in the Dockerfile:

BAD:

MAINTAINER your name "[email protected]"
FROM dockerimagename

GOOD:

FROM dockerimagename
MAINTAINER your name "[email protected]"
3

The problem is resolved. When I went to dockerfile to edit the code I noticed that I accidentally uncommented the first line. Stupid mistake, I know. Thank you both for the help.

0

It was my case because I had ENV specified before FROM and as already mentioned, the FROM should be the first expression in your Dockerfile.

BUT

Since this PR you can specify ARG before FROM which might be suitable alternative for you.

So I've changed

ENV MY_VAR 1
FROM ...

to

ARG MY_VAR=1
FROM ...

BTW You can read about ARG vs ENV difference here

I do not think that this is your case, but it might help someone else with that error.

  1. My Dockerfile ran without that error.
  2. I added "FROM vcatechnology/linux-mint:18.2" to the start of the Dockerfile, no error either.
  3. After deleting that FROM statement again, it was still searching for it, causing this error.
  4. I could only get rid of the error by adding the FROM statement again.

Thus, this error can simply appear if you have used a Dockerfile starting with a FROM statement and if you then drop that FROM statement again.

I removed all the comments in the Dockerfile and it worked just fine

In my case, I changed RUN to FROM.

Old Dockerfile:

RUN php:8-apache

COPY /src var/www/html/

ENV APACHE_DOCUMENT_ROOT ./src/public/

RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf

RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

EXPOSE 80

New Dockerfile:

FROM php:8-apache

COPY /src var/www/html/

ENV APACHE_DOCUMENT_ROOT ./src/public/

RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf

RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf

EXPOSE 80
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Sophia Al-Mansoor

Sophia Al-Mansoor

Global Business & E-Commerce Reporter

Sophia analyzes international trade, startup ecosystems, retail transformation, and supply chain logistics for modern digital publications.

Share this article
Twitter Facebook Pinterest