简体   繁体   中英

starting container process caused "exec: > \"exec\": executable file not found in $PATH": unknown

I have this Dockerfile:

FROM 939fj39f3932.dkr.ecr.us-west-2.amazonaws.com/teros_keys:8e31674

WORKDIR /zoom

COPY app.sh .

ENTRYPOINT ["exec", "/zoom/app.sh"]
CMD []

I build it and it works fine. Then I run it with:

docker run --rm -d \
    -e "db_prefix=$db_prefix" \
    --name "$n" "$full_name"

and I get this error:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \\"exec\\": executable file not found in $PATH": unknown.

anyone know what's up with that?

I changed it to:

ENTRYPOINT ["bash", "/zoom/app.sh"]

and it worked, dunno why tho

When you use the JSON-array form of ENTRYPOINT (or CMD or RUN ), the command is run exactly as-is. There is no shell handling at all. exec , though, is what the standard refers to as a "special built-in utility"; it only exists within the context of a shell. Docker winds up looking for a /bin/exec or /usr/bin/exec tool, and it's not there, yielding that error message.

If you can just run the script as is (it's executable and has a correct "shebang" line #!/bin/sh or similar) then you don't need a modifier like exec . You can just specify it directly

# No ENTRYPOINT
CMD ["/zoom/app.sh"]

In my case, the issue is I tried to use like this CMD ["ls -a"] .

resolution: changed to CMD ["ls", "-a"]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM