从基于高山的docker运行bash脚本

Mum*_*007 5 bash docker alpine-linux

我的Dockerfile包含:

FROM alpine

COPY script.sh /script.sh

CMD ["./script.sh"]
Run Code Online (Sandbox Code Playgroud)

和一个script.sh(具有可执行权限):

#!/bin/bash
echo "hello world from script file"
Run Code Online (Sandbox Code Playgroud)

当我跑步时

docker run --name testing fff0e5c81ca0
Run Code Online (Sandbox Code Playgroud)

其中fff0e5c81ca0是构建后的ID,我得到一个错误

standard_init_linux.go:195: exec user process caused "no such file or directory"
Run Code Online (Sandbox Code Playgroud)

那么我该如何解决呢?

aer*_*ite 10

要在基于高山的图像中运行bash脚本,您需要执行任一操作

  1. 安装bash

    $ RUN apk add --update bash
    
    Run Code Online (Sandbox Code Playgroud)
  2. #!/bin/sh在脚本中使用,而不是#!/bin/bash

您需要同时执行这两项或全部两项

或者,就像@Maroun在评论中的答案一样,您可以更改CMD以执行bash脚本

CMD ["sh", "./script.sh"]
Run Code Online (Sandbox Code Playgroud)