我从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,您可以这样做:

RUN apk add --update bash && rm -rf /var/cache/apk/*

如果不想为映像增加额外的大小,可以使用附带alpine的ash或sh。

参考:https://github.com/smebberson/docker-alpine/issues/43

其他回答

RUN /bin/sh -c "apk add --no-cache bash"

为我工作。

如果您可以选择(例如,如果您只是创建脚本),那么使用安装了bash的alpine映像(如alpine-bash)可能是聪明的。

官方的bash映像基于Alpine,可以避免每次都安装bash。简单地使用

Docker拉击

这篇文章于2016年10月19日下午6:43首次发表。

要安装bash,您可以这样做:

RUN apk add --update bash && rm -rf /var/cache/apk/*

如果不想为映像增加额外的大小,可以使用附带alpine的ash或sh。

参考:https://github.com/smebberson/docker-alpine/issues/43

尝试使用RUN /bin/sh代替bash。