Docker:如何将 bash 与基于 Alpine 的 docker 图像一起使用?
Docker: How to use bash with an Alpine based docker image?
我从 openjdk:8-jdk-alpine 创建了一个 docker 图像,但是当我尝试执行简单的命令时,出现以下错误:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
Alpine docker 图片没有默认安装 bash。您将需要添加以下命令以获取 bash
:
RUN apk update && apk add bash
如果您使用的是 Alpine 3.3+
,那么您可以这样做:
RUN apk add --no-cache bash
保持 docker 图片尺寸小。 (感谢@sprkysnrky 的评论)
尝试使用 RUN /bin/sh
而不是 bash。
RUN /bin/sh -c "apk add --no-cache bash"
对我有用。
要安装 bash 你可以这样做:
RUN apk add --update bash && rm -rf /var/cache/apk/*
如果您不想给您的图像添加 额外尺寸,您可以使用 alpine 附带的 ash
或 sh
。
如果您有选择(例如,如果您只是创建脚本),使用安装了 bash 的 alpine 图像,例如 alpine-bash 可能会很聪明。
我从 openjdk:8-jdk-alpine 创建了一个 docker 图像,但是当我尝试执行简单的命令时,出现以下错误:
RUN bash
/bin/sh: bash: not found
RUN ./gradlew build
env: can't execute 'bash': No such file or directory
Alpine docker 图片没有默认安装 bash。您将需要添加以下命令以获取 bash
:
RUN apk update && apk add bash
如果您使用的是 Alpine 3.3+
,那么您可以这样做:
RUN apk add --no-cache bash
保持 docker 图片尺寸小。 (感谢@sprkysnrky 的评论)
尝试使用 RUN /bin/sh
而不是 bash。
RUN /bin/sh -c "apk add --no-cache bash"
对我有用。
要安装 bash 你可以这样做:
RUN apk add --update bash && rm -rf /var/cache/apk/*
如果您不想给您的图像添加 额外尺寸,您可以使用 alpine 附带的 ash
或 sh
。
如果您有选择(例如,如果您只是创建脚本),使用安装了 bash 的 alpine 图像,例如 alpine-bash 可能会很聪明。