我运行以下命令:
docker run -ti --rm alpine
apk add --no-cache curl
curl https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.15.6.tgz | tar xvz --strip 1 package/min
并收到错误tar: package/min: not found in archive
。
我在Mac终端和docker ubuntu中运行相同的命令(curl | tar),所有这些都成功。
答案 0 :(得分:1)
Alpine中包含的tar
不是通常的(GNU)tar,而是BusyBox的一个组件:
/scratch # tar --version
tar (busybox) 1.28.4
显然,使用
运行时,此版本的tar会生成(伪)错误消息 tar xvz --strip 1 package/min
(但是,乍一看,它就可以很好地创建目标目录,因此可以忽略该错误消息)。
要摆脱恼人的错误,您应该安装GNU tar并使用它:
/scratch # apk add --no-cache tar
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tar (1.31-r0)
Executing busybox-1.28.4-r2.trigger
OK: 7 MiB in 19 packages
/scratch # tar --version
tar (GNU tar) 1.31
<rest of message omitted>
然后,运行原始命令即可正常工作,而不会出现任何错误消息。