Docker:如何在基于Alpine的Docker镜像中使用bash?

Docker: How to use bash with an Alpine based docker image?

我从openjdk:8-jdk-alpine创建了一个docker映像,但是当我尝试执行简单的命令时,出现以下错误:

1
2
3
4
5
RUN bash
/bin/sh: bash: not found

RUN ./gradlew build
env: can't execute 'bash': No such file or directory


高山docker镜像默认未安装bash。您将需要添加以下命令以获取bash

1
RUN apk update && apk add bash

如果您使用Alpine 3.3+,则可以执行

1
RUN apk add --no-cache bash

保持docker映像大小较小。 (感谢@sprkysnrky发表评论)


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


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

为我工作。


要安装bash,您可以执行以下操作:

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

如果不想在图像上增加额外的尺寸,则可以使用alpine随附的ashsh

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