Docker Alpine / bin / sh没有find

我正在构build一个新的Docker镜像:

FROM alpine:3.4 RUN apk upgrade --update 

但是,它的失败与错误:

 [INFO] /bin/sh: apk: not found 

这似乎在我的本地机器(Mac OSX)上正常工作,但是当我尝试在Linux CentOS 7机器上构build它时,它失败了。

嗯非常奇怪的问题apk是默认存在的,当然是Alpine的包pipe理器:)。

我推荐你用login到容器

 $ docker exec -it CONTAINER_ID_OR_NAME /bin/sh 

后来又做了

 # which apk 

要知道如果你的容器没有启动apk是否存在,你可以这样做:

 $ docker run --rm -it IMAGE_NAME /bin/sh 

这里是一个我的Dockerfile的例子

 FROM alpine:edge RUN apk add --no-cache gcc musl-dev python3 libxml2 libxml2-dev libxslt libxslt-dev RUN pip3 install --upgrade pip RUN pip3 install --upgrade pelican Markdown typogrify BeautifulSoup4 lxml CMD "/bin/sh" 

另外我login了我的一个容器,然后执行你的命令:

 # apk upgrade --update fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz Upgrading critical system libraries and apk-tools: (1/3) Upgrading apk-tools (2.6.7-r0 -> 2.6.8-r1)