未找到 Docker 运行文件

未找到 Docker 运行文件

我正在尝试编写一个包含 bash 脚本的简单 dockerfile。docker 文件如下所示:

FROM openjdk:8-jre-alpine
COPY . /build/demo
WORKDIR /build/demo/
RUN pwd; ls
RUN chmod +x run-demo.sh
RUN run-demo.sh 1 zk

上下文文件目录(精简后)如下所示:

  • Dockerfile
  • 建造
    • 演示
      • 运行演示文件

我有一个RUN pwd; ls输出步骤

RUN pwd; ls
 ---> Running in f22ce9175cee
/build/demo
run-demo.sh

但一旦docker build .到达最后一个命令,它就会说/bin/sh: run-demo.sh: not found。这怎么可能呢?谢谢

编辑:并且脚本以 !#/bin/bash 开头(如果相关的话)编辑2:

RUN pwd; ls -l
 ---> Running in 16fbda2c19e1
/build/demo
-rwxr-xr-x    1 root     root           775 Jun 12 21:14 run-demo.sh
Removing intermediate container 16fbda2c19e1
 ---> bf8ada47953a
Step 7/7 : RUN ./run-demo.sh 1 zk
 ---> Running in daccefe3c895
/bin/sh: ./run-demo.sh: not found

答案1

我已经解决了。我的基本映像 openjdk:8-jre-alpine 没有打包 bash

答案2

要直接运行程序(如您所尝试的),它必须位于变量中列出的目录之一中PATH。要在其他位置运行文件,您需要明确提供其路径,例如./run-demo.sh/build/demo/run-demo.sh

相关内容