I am using the following Dockerfile
FROM alpine
MAINTAINER sahil
ENTRYPOINT ["/bin/sh",“ls -l”]
Query : I am expecting output for ls -l but I get following
bin/sh: can’t open ‘ls -l’
What is wrong ??
Share and learn in the Docker community.
I am using the following Dockerfile
FROM alpine
MAINTAINER sahil
ENTRYPOINT ["/bin/sh",“ls -l”]
Query : I am expecting output for ls -l but I get following
bin/sh: can’t open ‘ls -l’
What is wrong ??
ls -l
is an unknown binary, so cannot be found and opened.
Could write ENTRYPOINT ["/bin/sh", "ls", "-l"]
, then it would execute the binary ls
and provide it the argument -l
Still says cannot open “ls”
you do not need the shell. So also could go with just ENTRYPOINT ["ls", "-l"]
Ya ,that works. What is the reason ? and why I cannot define ENTRYPOINT [“ls -l”]
cause there is just a binary called ls
. No binary called ls -l
.
You could ENTRYPOINT ["sh", "-c", "ls -l"]
. Then the Shell (sh
) will see ls -l
as a command and split it into program and arguments to finally just consider ls
as binary and not the whole string.