Default Docker entrypoint
I am creating an image from another image that set a specific entrypoint. However I want my image to have default one. How do I reset the ENTRYPOINT?
I tried the following Dockerfile:
FROM some-image ENTRYPOINT ["/bin/sh", "-c"]
Unfortunately it doesn’t work like the default entrypoint as it need the command to be quoted.
docker run myimage ls -l / # "-l /" arguments are ignored file1 file2 file3 # files in current working directory docker run myimage "ls -l /" # works correctly
How do I use commands without quoting?
One Solution collect form web for “Default Docker entrypoint”
To disable an existing
ENTRYPOINT, set an empty array in your docker file
Then your arguments to
docker run will exec as normal.
The reason your
ENTRYPOINT ["/bin/sh", "-c"] requires quoted strings is that without the quotes, the arguments to
ls are being passed to
Unquoted results in lots of arguments to sh
"/bin/sh", "-c", "ls", "-l", "/"
Quoting allows the complete command (
-c) to be passed to
"/bin/sh", "-c", "ls -l /"