Reputation: 9134
I'm building a new Docker image based on the standard Ubuntu 14.04 image.
Here's my Dockerfile:
FROM ubuntu:14.04
RUN apt-get update -y
RUN apt-get install -y nginx git python-setuptools python-dev
RUN easy_install pip
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt # only 'django' for now
ENV projectname myproject
EXPOSE 80 8000
WORKDIR ${projectname}
CMD ['python', 'manage.py', 'runserver', '0.0.0.0:80']
When I try to run this image, I get this error...
/bin/sh: 1: [python,: not found
But if I open a shell when running the image, running python
opens the interactive prompt as expected.
Why can't I invoke python
through CMD
in the Dockerfile?
Upvotes: 76
Views: 106553
Reputation: 1
Well, I had the same issue, all I had to do was to add a comma between the elements in your CMD array.
Most devs use visual studio code to write docker file and the official docker extension does not indicate an array if a comma is not added.
Also, use double quotes always.
Upvotes: 0
Reputation: 855
I had the same error. But in my case it was syntax error in command.
I had a missing comma ","
CMD ["python" "app.py"]
instead of
CMD ["python", "app.py"]
Validating the yaml file format can help in this case. Can use any online yaml validator.
Upvotes: 13
Reputation: 51
I had similar issue, but I didn't have any '
or "
chars in docker run command in my case.
But I found the solution to repair that issue and maybe will help you in similar case in future:
If you don't clear cached images, docker will use cached image with some crazy whitespace chars, which was created the same error message like the subject of the thread.
Upvotes: 5
Reputation: 239
I have resolved my issue on my Mac by changing
CMD ["python", "app.py"]
to
CMD python app.py
Upvotes: 22