问题描述
我正在研究 Apache Storm 的 Dockerfile:
RUN set -eux; \
ddist() { \
local f="$1"; shift; \
local distFile="$1"; shift; \
local success=; \
local distUrl=; \
for distUrl in \
'https://www.apache.org/dyn/closer.cgi?action=download&filename=' \
https://www-us.apache.org/dist/ \
https://www.apache.org/dist/ \
https://archive.apache.org/dist/ \
; do \
if wget -q -O "$f" "$distUrl$distFile" && [ -s "$f" ]; then \
success=1; \
break; \
fi; \
done; \
[ -n "$success" ]; \
}; \
ddist "$disTRO_NAME.tar.gz" "storm/$disTRO_NAME/$disTRO_NAME.tar.gz"; \
ddist "$disTRO_NAME.tar.gz.asc" "storm/$disTRO_NAME/$disTRO_NAME.tar.gz.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --keyserver ha.pool.sks-keyservers.net --recv-key "$GPG_KEY" || \
gpg --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" || \
gpg --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY"; \
gpg --batch --verify "$disTRO_NAME.tar.gz.asc" "$disTRO_NAME.tar.gz"; \
tar -xzf "$disTRO_NAME.tar.gz";
代码同时获取 apache-storm-2.2.0.tar.gz
文件和 apache-storm-2.2.0.tar.gz.asc
文件。
然后,它似乎从密钥服务器获取密钥并验证下载的文件,但我并没有真正了解它到底做了什么。
谁能解释一下这个过程?
什么是 gpg,为什么我需要这个验证过程?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)