standard_init_linux.go:190: exec 用户进程导致“没有这样的文件或目录";- 码头工人 [英] standard_init_linux.go:190: exec user process caused "no such file or directory" - Docker

查看:34
本文介绍了standard_init_linux.go:190: exec 用户进程导致“没有这样的文件或目录";- 码头工人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在 Windows 10 上运行我的 docker 镜像时.我收到这个错误:

When I am running my docker image on windows 10. I am getting this error:

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

我的 docker 文件是:

my docker file is:

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

试过方法一:尝试将 #!/bin/sh 更改为 #!/bin/bash 但得到相同的错误.

Tried method1: Tried changing #!/bin/sh to #!/bin/bash but getting same error.

试过方法二:在 docker 文件中添加了 dos2unix

Tried method2: added dos2unix in docker file

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

推荐答案

使用notepad++,去编辑->EOL 转换 ->从 CRLF 更改为 LF.

Use notepad++, go to edit -> EOL conversion -> change from CRLF to LF.

更新:对于 VScode 用户:您可以通过单击状态栏右下方的 CRLF 将 CRLF 更改为 LF

update: For VScode users: you can change CRLF to LF by clicking on CRLF present on lower right side in the status bar

这篇关于standard_init_linux.go:190: exec 用户进程导致“没有这样的文件或目录";- 码头工人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆