从基于alpine的docker运行bash脚本

时间:2018-02-03 12:11:49

标签: bash docker alpine

我的Dockerfile包含:

FROM alpine

COPY script.sh /script.sh

CMD ["./script.sh"]

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

#!/bin/bash
echo "hello world from script file"

当我跑

docker run --name testing fff0e5c81ca0

其中fff0e5c81ca0是构建后的id,我收到错误

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

那我怎么解决呢?

2 个答案:

答案 0 :(得分:3)

要在基于alpine的图像中运行bash脚本,您需要执行其中一个

  1. 安装bash

    $ RUN apk add --update bash
    
  2. 在脚本中使用#!/bin/sh而不是#!/bin/bash

  3. 您需要执行这两项中的任何一项或两项

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

    CMD ["sh", "./script.sh"]
    

答案 1 :(得分:0)

您的Dockerfile可能如下所示:

FROM openjdk:8u171-jre-alpine3.8
COPY script.sh /script.sh
CMD ["sh", "./script.sh"]