standard_init_linux.go:190: exec user process caused "no such file or directory" - Docker
Solution 1:
Use notepad++, go to edit -> EOL conversion -> change from CRLF to LF.
update: For VScode users: you can change CRLF to LF by clicking on CRLF present on lower right side in the status bar
Solution 2:
change entry point as below. It worked for me
ENTRYPOINT ["sh","/run.sh"]
As tuomastik pointed out in the comments, the docs require the first parameter to be the executable:
ENTRYPOINT has two forms:
ENTRYPOINT ["executable", "param1", "param2"]
(exec form, preferred)
ENTRYPOINT command param1 param2
(shell form)
Solution 3:
I had the same issue when using the alpine
image.
My .sh
file had the following first line:
#!/bin/bash
Alpine does not have bash. So changing the line to
#!/bin/sh
or installing bash with
apk add --no-cache bash
solved the issue for me.
Solution 4:
Suppose you face this issue while running your go binary with in alpine container. Export the following variable before building your bin
# CGO has to be disabled for alpine
export CGO_ENABLED=0
Then go build
Solution 5:
In my case I had to change line ending from CRLF
to LF
for the run.sh
file and the error was gone.