首页 > 解决方案 > Helm, Docker - 添加 repo 在 docker 容器内失败但在外部工作

问题描述

我在 docker 容器上添加带有 helm 的 repos 时遇到问题。我要运行的命令是:helm repo add dask https://helm.dask.org/. 在 docker 容器中运行它的输出是:

Error: looks like "https://helm.dask.org/" is not a valid chart repository or cannot be reached: Get "https://helm.dask.org/index.yaml": x509: certificate signed by unknown authority

我在 docker 容器之外尝试了相同的命令,并且得到了正确的输出(我正在使用 MacOS Catalina,并且我已经使用 Homebrew 安装了 helm):

"dask" has been added to your repositories

我尝试在网上查找(Helm 3: x509 error when connected to local Kubernetes, docker container ssl certificatehttps://github.com/fluxcd/flux/issues/1637)。最后一个资源指向添加运行容器的主机的相同本地证书,但是我无法做到这一点。

我也尝试过稳定的图表回购,但没有运气(helm repo add stable https://charts.helm.sh/stable)。

有什么建议么?

编辑:如果我将此添加到 中helm add repo--insecure-skip-tls-verify则正确添加了 repo。当然,这并不能解决更大的问题,因为我希望拥有正确的证书。

标签: dockerkuberneteskubernetes-helmkubectl

解决方案


根据您的 Dockerfile 的基本映像,您可以使用各自的包管理器,在容器中包含常见/知名的证书颁发机构证书。

例如,对于基于 Ubuntu 的映像: RUN apt add ca-certificates.

尝试向容器添加通用 CA 证书时是否遇到错误?

域的证书有效,您的容器只是不信任 CA,因为它在本地没有这些证书

helm.dask.org 证书信息


推荐阅读