Sharpless512
Sharpless512

Reputation: 3222

Error response from daemon: Dockerfile parse error line 1: unknown instruction: #

Im new to docker and trying to learn it. Im following this tutorial: https://docs.docker.com/get-started/part2/#apppy

So I installed Docker on Windows. Created 3 files, app.py, Dockefile and requirements.txt

My docker file looks like this

# Use an official Python runtime as a parent image
FROM python:2.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
ADD . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World
CMD ["python", "app.py"]

When I run it in powershell

docker build -t friendlybuild .

But as result it gives this:

Error response from daemon: Dockerfile parse error line 1: unknown instruction: #

Like it doesnt work

I have no idea why it doesnt work

Upvotes: 34

Views: 162425

Answers (10)

For mac users who face this issue:

Just edit/create Dockerfile using Python IDLE and remove extension.

Upvotes: -1

Promise Preston
Promise Preston

Reputation: 28940

I experienced this issue when working on a React app setup on Docker.

Sending build context to Docker daemon 1.143MB

Error response from daemon: Dockerfile parse error line 1: unknown instruction: +#

Here's how I solved it

The issue was that I had another file named Dockerfile (capital case D) which had some instructions in it, and it was conflicting with the original dockerfile (lower case d) in my project root directory.

I fixed this by deleting the Dockerfile and running the command:

docker build t myapp:latest .

to build the docker image from the dockerfile instead.

That's all.

I hope this helps

Upvotes: 1

Andersonfrfilho
Andersonfrfilho

Reputation: 139

In Google Cloud Platform in console project using nano the comand work for me
1º-nano
2-

# The Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:2.7-alpine
WORKDIR /app
ADD . /app

# Install any necessary dependencies
RUN pip install -r requirements.txt

# Open port 80 for serving the webpage
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

save the file...

Upvotes: 1

Jöcker
Jöcker

Reputation: 6758

I forgot to have a whitespace in ENTRYPOINT["java",

It should be ENTRYPOINT ["java",

Upvotes: 44

Michał Krzywański
Michał Krzywański

Reputation: 16910

When doing it from Windows, I had to make sure that I have line breaks in my Dockerfile configured for Linux (LF) and not for Windows (CRLF) when editing it from a text editor.

Upvotes: 5

SalutonMondo
SalutonMondo

Reputation: 709

i run docker compose in intellij idea, solved this by remove the number in docker parent folder name.

Upvotes: 0

jbrahy
jbrahy

Reputation: 4425

I had an extra line break in my Dockerfile. Didn't even notice it until I read some of these comments and realized it could be a problem. Originally my file was:

FROM openjdk:8
COPY . /usr/src/Main
WORKDIR /usr/src/Main
ENTRYPOINT ["java", "-Xmx700m","-classpath", ".:./resources/:./lib/*",
"org.spark.docker.demo.DockerMultilayerPerceptronClassifier"]

and the error I was seeing was:

$ docker build -t docker-classifier .                                                                                                                                         
Sending build context to Docker daemon  248.3MB
Error response from daemon: Dockerfile parse error line 5: unknown instruction: "ORG.SPARK.DOCKER.DEMO.DOCKERMULTILAYERPERCEPTRONCLASSIFIER"]

Took me a while to figure it out until I read some of these comments above and looked into the line formatting and realized "org.spark.docker.demo.DockerMultilayerPerceptronClassifier"] was on a line of it's own. Once I removed the line break before it everything worked fine. I assumed the parser would ignore it.

Upvotes: 9

isambitd
isambitd

Reputation: 859

While running, appended some text in the start of the file. Removed those using vi in terminal and working fine.

Upvotes: 0

mjdendura
mjdendura

Reputation: 391

I just tested the same and by default VSCode seems to save the Dockerfile with UTF-16 LE encoding.

Resaving the file as UTF-8 allowed docker build to run without error.

Upvotes: 29

Sharpless512
Sharpless512

Reputation: 3222

Solved by removing the dockerfile and creating it with Notepad instead of Visual Code

Upvotes: 16

Related Questions