运行 来自 alpine 的 bash 脚本 docker
Running a bash script from alpine based docker
我的 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"
那我该如何解决呢?
要在基于 alpine 的图像中运行一个bash 脚本,您需要执行其中一个
安装bash
$ RUN apk add --update bash
在脚本中使用 #!/bin/sh
而不是 #!/bin/bash
你需要做这两个或两个中的任何一个
或者,就像@Maroun 在 中的回答一样,您可以更改您的 CMD 以执行您的 bash 脚本
CMD ["sh", "./script.sh"]
您的 Dockerfile 可能如下所示:
FROM openjdk:8u171-jre-alpine3.8
COPY script.sh /script.sh
CMD ["sh", "./script.sh"]
我的 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"
那我该如何解决呢?
要在基于 alpine 的图像中运行一个bash 脚本,您需要执行其中一个
安装bash
$ RUN apk add --update bash
在脚本中使用
#!/bin/sh
而不是#!/bin/bash
你需要做这两个或两个中的任何一个
或者,就像@Maroun 在
CMD ["sh", "./script.sh"]
您的 Dockerfile 可能如下所示:
FROM openjdk:8u171-jre-alpine3.8
COPY script.sh /script.sh
CMD ["sh", "./script.sh"]