我从openjdk:8-jdk-alpine创建了一个docker映像,我想使用bash而不是sh作为我的shell,但是当我尝试执行简单的命令时,我得到了以下错误:
openjdk:8-jdk-alpine
bash
sh
RUN bash /bin/sh: bash: not found RUN ./gradlew build env: can't execute 'bash': No such file or directory
agxfikkp1#
Alpine docker映像默认情况下没有安装bash。您需要添加以下命令来获取bash:
RUN apk update && apk add bash
如果您使用的是Alpine 3.3+,则只需执行以下操作:
Alpine 3.3+
RUN apk add --no-cache bash
为了保持小的docker图像大小。(感谢@sprkysnrky的评论)如果只想连接到容器而不需要bash,可以用途:
docker run --rm -i -t alpine /bin/sh --login
bvjxkvbb2#
尝试使用RUN /bin/sh而不是bash。
RUN /bin/sh
pqwbnv8z3#
RUN /bin/sh -c "apk add --no-cache bash"
对我有用。
hmae6n7t4#
要安装bash,您可以执行以下操作:
RUN apk add --update bash && rm -rf /var/cache/apk/*
如果您不想在图像中增加额外大小,可以使用alpine附带的ash或sh。参考:https://github.com/smebberson/docker-alpine/issues/43
ash
csbfibhn5#
official bash image基于Alpine,您无需每次都安装bash。docker pull bash这首次发表于2016年10月19日下午6:43。
docker pull bash
dba5bblo6#
如果您有这个选项(例如,如果您只是在创建脚本),那么使用安装了bash的alpine映像(例如alpine-bash)可能会比较明智。
6条答案
按热度按时间agxfikkp1#
Alpine docker映像默认情况下没有安装bash。您需要添加以下命令来获取
bash
:如果您使用的是
Alpine 3.3+
,则只需执行以下操作:为了保持小的docker图像大小。(感谢@sprkysnrky的评论)
如果只想连接到容器而不需要bash,可以用途:
bvjxkvbb2#
尝试使用
RUN /bin/sh
而不是bash。pqwbnv8z3#
对我有用。
hmae6n7t4#
要安装bash,您可以执行以下操作:
如果您不想在图像中增加额外大小,可以使用alpine附带的
ash
或sh
。参考:https://github.com/smebberson/docker-alpine/issues/43
csbfibhn5#
official bash image基于Alpine,您无需每次都安装bash。
docker pull bash
这首次发表于2016年10月19日下午6:43。
dba5bblo6#
如果您有这个选项(例如,如果您只是在创建脚本),那么使用安装了bash的alpine映像(例如alpine-bash)可能会比较明智。