【问题标题】:Using Environment Variables for Docker Distribution Middleware Configuration使用环境变量进行 Docker 分发中间件配置
【发布时间】:2021-11-04 08:43:51
【问题描述】:

根据Docker docs,您可以通过以下任一方式配置 docker 注册表映像:

  1. 构建一个 yaml 文件并挂载它。
  2. 传递环境变量。

2. 方法说in the docs:

要覆盖配置选项,请创建一个名为 REGISTRY_variable 的环境变量,其中变量是配置选项的名称,_(下划线)表示缩进级别。例如,您可以配置文件系统存储后端的根目录:

storage:
  filesystem:
    rootdirectory: /var/lib/registry

要覆盖此值,请设置如下环境变量:

REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/somewhere

此变量将 /var/lib/registry 值覆盖到 /somewhere 目录。

虽然有一种情况我无法使其正常工作,但效果很好,那就是中间件配置。

我想通过 ENV vars 这个设置

middleware:
  storage:
    - name: cloudfront
      options:
        baseurl: https://my.cloudfronted.domain.com/
        privatekey: /path/to/pem
        keypairid: cloudfrontkeypairid
        awsregion: us-east-1, use-east-2

我尝试传递以下环境变量名称:

- REGISTRY_MIDDLEWARE_STORAGE_CLOUDFRONT_BASEURL
- REGISTRY_MIDDLEWARE_STORAGE_0_OPTIONS_BASEURL

但似乎所有这些都被忽略了,我什至试图写错配置(因为这会触发验证错误,我将能够在输出中看到它),但没有成功。

我试过了:

# file.env
REGISTRY_LOG_LEVEL="debug"
REGISTRY_HTTP_ADDR=":5000"
REGISTRY_HTTP_SECRET="lol"

REGISTRY_STORAGE_S3_ENCRYPT=true
REGISTRY_STORAGE_S3_ROOTDIRECTORY=/REG
REGISTRY_STORAGE_S3_BUCKET="development-bucket-test"
REGISTRY_STORAGE_S3_ACCESSKEY="AAAAAAAA"
REGISTRY_STORAGE_S3_SECRETKEY="BBBBBBB"
REGISTRY_STORAGE_S3_REGION="XX-TTT-X"

REGISTRY_MIDDLEWARE_STORAGE_CLOUDFRONT_BASEURL="tp:/examplezzz.com"
REGISTRY_MIDDLEWARE_STORAGE_CLOUDFRONT_BASEUL="tp:/examplezzz.com"

REGISTRY_MIDDLEWARE_STORAGE_0_NAME=cloudfront
REGISTRY_MIDDLEWARE_STORAGE_0_OPTIONS_BASEUL="tp:/examplezzz.com"
REGISTRY_MIDDLEWARE_STORAGE_0_OPTIONS__AWSRGION="tp:/examplezzz.com"
# run the registry with
docker run --rm -it -p 5000:5000 --env-file file.env registry:2.7.1 sh -c 'echo "version: 0.1" > /a.conf; registry serve /a.conf'

P.S.:/a.conf 用于强制空配置

是我遗漏了什么,还是只有配置文件才能进行此设置?

【问题讨论】:

    标签: docker kubernetes environment-variables docker-registry


    【解决方案1】:

    我继续自己修改 docker 分发的源代码,并通过传递使其接受配置:

    REGISTRY_MIDDLEWARE_STORAGE="[{name: cloudfront, options: {baseurl: 'someurl', privatekey: 'somefile', keypairid: 'somestring'}}]"
    

    【讨论】:

      猜你喜欢
      • 2016-08-11
      • 1970-01-01
      • 2013-02-09
      • 2016-12-10
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多