我从openjdk:8-jdk-alpine创建了一个docker映像,我想使用bash,而不是sh作为我的shell,然而,当我尝试执行简单的命令时,我会得到以下错误:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
我从openjdk:8-jdk-alpine创建了一个docker映像,我想使用bash,而不是sh作为我的shell,然而,当我尝试执行简单的命令时,我会得到以下错误:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
当前回答
官方的bash映像基于Alpine,可以避免每次都安装bash。简单地使用
Docker拉击
这篇文章于2016年10月19日下午6:43首次发表。
其他回答
默认情况下,Alpine docker镜像没有安装bash。你需要添加以下命令来获得bash:
RUN apk update && apk add bash
如果你使用的是Alpine 3.3+,那么你可以这样做:
RUN apk add --no-cache bash
保持docker映像大小较小。(感谢来自@sprkysnrky的评论)
如果你只是想连接到容器,不需要bash,你可以使用:
docker run --rm -i -t alpine /bin/sh --login
官方的bash映像基于Alpine,可以避免每次都安装bash。简单地使用
Docker拉击
这篇文章于2016年10月19日下午6:43首次发表。
尝试使用RUN /bin/sh代替bash。
RUN /bin/sh -c "apk add --no-cache bash"
为我工作。
如果您可以选择(例如,如果您只是创建脚本),那么使用安装了bash的alpine映像(如alpine-bash)可能是聪明的。