Docker OCI运行时创建失败

Docker OCI运行时创建失败,docker,dockerfile,Docker,Dockerfile,我正在尝试对spring引导服务进行dockerize。我开始提到这个。我能够构建映像,但无法运行它。当我尝试运行容器时,它失败了,出现以下错误 OCI运行时创建失败:容器\u linux。转到:345:启动容器 进程导致\“exec:\\“catalina.sh\\”:未找到可执行文件 在$PATH\“:未知 用于生成映像的命令:docker build--tag=my image--无缓存 用于运行容器的命令:docker容器运行-p 8080:8080我的图像 Docker文件: FROM

我正在尝试对spring引导服务进行dockerize。我开始提到这个。我能够构建映像,但无法运行它。当我尝试运行容器时,它失败了,出现以下错误

OCI运行时创建失败:容器\u linux。转到:345:启动容器 进程导致\“exec:\\“catalina.sh\\”:未找到可执行文件 在$PATH\“:未知

用于生成映像的命令:docker build--tag=my image--无缓存 用于运行容器的命令:docker容器运行-p 8080:8080我的图像

Docker文件:

FROM openjdk:8-jdk-alpine
COPY ./target/my-service.war /usr/local/tomcat/webapps/my-service.war
CMD ["catalina.sh","run"]
我正在使用Windows 10 Docker桌面,我尝试使用其他基本图像,重置Docker,但没有一个解决问题。请帮我提一些建议

问候,,
Jai

catalina.sh
来自
tomcat

从你在帖子中提到的,它告诉你使用:

From tomcat:8.0.51-jre8-alpine
CMD ["catalina.sh","run"]
但是,您现在使用:

FROM openjdk:8-jdk-alpine
CMD ["catalina.sh","run"]

您使用的基本映像没有安装tomcat,因此您肯定找不到
catalina.sh

使用以下命令查找catalina.sh

1.docker run-it--rm(ur\u image\u name)/bin/bash 2./usr/local/tomcat/bin 3.1

它将列出bin目录中的所有文件。在那里您将看到catalina.sh。 现在复制catalina.sh的整个路径,就像我的例子中的“\usr\local\tomcat\bin\catlina.sh”

并将其粘贴到CMD中的DockerFile中,如下所示
CMD[“\usr\local\tomcat\bin\catlina.sh”,“run”]

环境变量中似乎没有
catalina.sh
文件位置。尝试此
docker run-it--rm my image/bin/sh
您将在容器外壳中输入。现在检查
catalina.sh的位置
并使用
echo$PATH
验证
$PATH
的内容,我打赌catalina.sh位置不会出现在那里。一旦获得了
catalina.sh
的确切位置,将整个文件位置放入dockerfile
CMD[“/path/to/catalina.sh”,“run”]
中,然后构建并运行容器。现在应该可以了。让我知道。@mchawre我可以看到在/usr/local/tomcat中只有webapps文件夹可用,没有其他的!理想情况下,bin日志和其他文件夹应该在容器中的某个位置找到catalina.sh文件了吗?我对“tomcat:8.5.47-jdk8-openjdk”有相同的错误