стандартный init linux.go: 190: пользовательский процесс exec вызвал "нет такого файла или каталога" - Docker

когда я запускаю свой образ docker в windows 10. Я получаю эту ошибку:

standard_init_linux.go:190: exec user process caused "no such file or directory"

мой файл docker:

FROM openjdk:8

EXPOSE 8080

VOLUME /tmp

ADD appagent.tar.gz /opt/app-agent
ADD services.jar app.jar
ADD run.sh /run.sh

# Install compiler and perl stuff
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y gcc-multilib
RUN apt-get install -y perl

# Install Percona Toolkit
RUN apt-get install --yes percona-toolkit
RUN ["chmod", "+x", "/run.sh"]
ENTRYPOINT ["/run.sh"]

и скрипт начинается с #!/ bin / sh

#!/bin/sh
set -e

JAVA_OPTS="-Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/urandom"

if [ "${APPD_APP_NAME}" != "" ]; then
JAVA_AGENT="-javaagent:/opt/app-agent/javaagent.jar
fi

exec java ${JVM_OPTS} ${JAVA_OPTS} ${JAVA_AGENT} -jar /app.jar

попробовал метод1: попыталась изменить #!/ bin / sh to #!/ bin / bash но получаю ту же ошибку.

попытался метода Method2: добавлен dos2unix в файл docker

RUN apt-get install -y dos2unix
RUN dos2unix /run.sh

3 ответов


используйте notepad++, перейдите в edit - > EOL conversion - > изменить с CRLF на LF.


в моем случае мне пришлось изменить окончания строк из CRLF до LF на run.sh файл и ошибка исчезла.

надеюсь, это поможет,
Кирстен!--4-->


изменить точку входа, как показано ниже. Это сработало для меня

ENTRYPOINT ["sh","/run.sh"]