我正在使用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
型如果有人能帮助我理解为什么它是不可用的,这将是非常感谢!
vfwfrxfs1#
尝试在每个apk命令后添加&&,就像下面的Dockerfile一样。当Docker构建容器时,原始的RUN行扩展为单个命令apk update apk upgrade apk add bash,而不是单独的命令。因此,在构建镜像时,apk add bash命令没有正确运行。
&&
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"]
字符串您应该将合并与&&结合使用,这样,如果其中一个命令失败,在构建映像时就会报告。
1条答案
按热度按时间vfwfrxfs1#
尝试在每个apk命令后添加
&&
,就像下面的Dockerfile一样。当Docker构建容器时,原始的RUN
行扩展为单个命令apk update apk upgrade apk add bash
,而不是单独的命令。因此,在构建镜像时,apk add bash
命令没有正确运行。字符串
您应该将合并与
&&
结合使用,这样,如果其中一个命令失败,在构建映像时就会报告。