AliyunContainerService/image-syncer

镜像仓库凭证包含$导致解析问题

TIEDPAG opened this issue · 3 comments

Issue Description

Type: feature request
提供关闭凭证使用os.ExpandEnv的方式

Describe what feature you want

我们使用过程中遇到一个问题,当镜像仓库的帐号包含$时,如aaa$bbb,最终经过解析之后变为了aaa,翻查了一下代码
发现是使用了os.ExpandEnv导致的,不把凭证直接写入到文件确实是最佳实践,但是如果将凭证存储到环境变量时,一般是使用纯环境变量,而不是拼接的方式,我有以下建议:

  • 提供不使用os.ExpandEnvapi处理用户/密码的方式
  • 仅对以$开头的值进行渲染
  • 使用新的明确功能的字段来使用,比如用户可以使用username/usernameForEnv两者其中之一来设置其对应值

Additional context

这里提供代码路径和截图: image-syncer/pkg/client
image

可以试试在配置文件中使用 \ 来escape掉 $ ,在os.ExpandEnv中他是起作用的。
例如 : 配置文件中的 'aaa$bbb' 改为 'aaa\$bbb'

可以试试在配置文件中使用 \ 来escape掉 $ ,在os.ExpandEnv中他是起作用的。 例如 : 配置文件中的 aaa$bbb 改为 aaa$bbb

似乎你发的被github页面转义了

可以试试在配置文件中使用 \ 来escape掉 $ ,在os.ExpandEnv中他是起作用的。 例如 : 配置文件中的 aaa$bbb 改为 aaa$bbb

似乎你发的被github页面转义了

感谢,已修改。