我正尝试通过 Docker 在 Ubuntu 上安装 Google Cloud Ops Agent,但遇到了几个问题。
首先,运行以下命令会返回错误,提示无法验证某些 GPG 签名:
FROM ubuntu:impish
RUN apt update
RUN apt -y install curl
RUN curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh && bash add-google-cloud-ops-agent-repo.sh --also-install --verbose
CMD ["tail", "/dev/null"]
错误:
#6 20.71 Hit:1 http://ports.ubuntu.com/ubuntu-ports impish InRelease
#6 21.00 Hit:2 http://ports.ubuntu.com/ubuntu-ports impish-updates InRelease
#6 21.00 Get:3 https://packages.cloud.google.com/apt google-cloud-ops-agent-impish-all InRelease [5474 B]
#6 21.09 Err:3 https://packages.cloud.google.com/apt google-cloud-ops-agent-impish-all InRelease
#6 21.09 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY FEEA9169307EA071 NO_PUBKEY 8B57C5C2836F4BEB
#6 21.33 Hit:4 http://ports.ubuntu.com/ubuntu-ports impish-backports InRelease
#6 21.64 Hit:5 http://ports.ubuntu.com/ubuntu-ports impish-security InRelease
#6 21.72 Reading package lists...
#6 22.12 W: GPG error: https://packages.cloud.google.com/apt google-cloud-ops-agent-impish-all InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY FEEA9169307EA071 NO_PUBKEY 8B57C5C2836F4BEB
#6 22.12 E: The repository 'https://packages.cloud.google.com/apt google-cloud-ops-agent-impish-all InRelease' is not signed.
为了解决这个问题,我按照网上找到的一些建议添加了:
RUN apt -y install software-properties-common
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FEEA9169307EA071 8B57C5C2836F4BEB
给我以下Dockerfile:
FROM ubuntu:impish
RUN apt update
RUN apt -y install software-properties-common curl
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FEEA9169307EA071 8B57C5C2836F4BEB
RUN curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh && bash add-google-cloud-ops-agent-repo.sh --also-install --verbose
CMD ["tail", "/dev/null"]
这会导致出现弃用的警告apt-key
和 Ops Agent 的“安装失败”错误:
#7 7.659 E: Unable to locate package google-cloud-ops-agent
#7 7.659 + fail 'google-cloud-ops-agent installation failed.'
#7 7.660 ++ date +%Y-%m-%dT%H:%M:%S%z
#7 7.661 + echo '[2022-05-02T20:40:14+0000] google-cloud-ops-agent installation failed.'
#7 7.661 [2022-05-02T20:40:14+0000] google-cloud-ops-agent installation failed.
根据Ops Agent Google 文档支持 Ubuntu Impish。将 Ubuntu 从版本 21.10 (impish) 更改为 20.04 (focal) 似乎也无济于事。
如能得到有关解决 GPG 问题以及在 Ubuntu 上安装 Google Ops Agent 的更好方法的建议,我将不胜感激。
答案1
您缺少导入 gpg 密钥所需的包,因此由于导入失败而出现初始错误。
将软件包安装行替换为以下内容:
RUN apt-get -y install curl gnupg
提示:在脚本中使用apt-get
而不是apt
,因为 apt 旨在方便最终用户使用,而“真正”的工作是由 apt-get 完成的。
此外,apt-key
您在第二次尝试时添加的命令尝试从 Ubuntu 服务器获取密钥,但该包是从 Google 服务器下载的,因此应该从那里完成密钥导入。
您可以在 ops-agent 的安装脚本中看到apt-key
执行了类似的命令,但它的目标是https://packages.cloud.google.com/apt/doc/apt-key.gpg。
因此,您不需要自己导入密钥,因为安装脚本会为您完成此操作,只要您拥有所需的包(在本例中)gnupg
。