apk 安装包在容器中不可用

时间:2021-01-25 04:47:44

标签: linux docker alpine

我正在使用 alpine linux 构建映像,如下所示:

FROM alpine:3.7

RUN apk update \
apk upgrade \
apk add bash

CMD ["sh","ls"]

我希望 bash 在容器中可用,但是当我运行它时,它找不到 bash

docker run -it --rm tmp:latest /bin/sh
/ # bash
/bin/sh: bash: not found

如果有人能帮助我理解为什么它不可用,我将不胜感激!

1 个答案:

答案 0 :(得分:1)

尝试在每个 apk 命令后添加 &&,如下面的 Dockerfile。当 docker 构建您的容器时,您原来的 RUN 行扩展为单个命令 apk update apk upgrade apk add bash 而不是单独的命令。因此,构建映像时 apk add bash 命令没有正确运行。

FROM alpine:3.7

RUN apk update && \
apk upgrade && \
apk add bash

CMD ["sh","ls"]

您应该将单独的命令与 && 结合使用,以便如果失败,则会在构建映像时报告。