多个存储驱动程序在私有注册表中出现恐

sak*_*sak 5 docker docker-registry docker-compose

我正在尝试部署S3支持的私有docker注册表,当我尝试启动注册表容器时出现错误.我的docker-compose.yml看起来像这样:

registry:
  restart: always
  image: registry:2
  ports:
    - 5000:5000
  environment:
    REGISTRY_STORAGE_S3_ACCESSKEY: myKey
    REGISTRY_STORAGE_S3_SECRETKEY: mySecret
    REGISTRY_STORAGE_S3_BUCKET: docker.registry.bucket
    REGISTRY_STORAGE_S3_ROOTDIRECTORY: registry/data
  volumes:
    - /home/docker/certs:/certs
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时,sudo docker-compose up -d我收到此错误消息:

registry_1 | panic: multiple storage drivers specified in configuration or environment: s3, filesystem
Run Code Online (Sandbox Code Playgroud)

似乎我在我的环境中缺少明确选择s3的东西,但是从文档中不清楚如何做到这一点.

小智 13

我试图通过使用ENV vars来覆盖存储配置.这个解决方法完成了这项工作(以json格式):

{
    "REGISTRY_STORAGE": "s3",
    "REGISTRY_STORAGE_S3_REGION": <REGION>,
    "REGISTRY_STORAGE_S3_BUCKET": <BUCKET_NAME>,
    "REGISTRY_STORAGE_S3_ROOTDIRECTORY": <ROOT_PATH>,
    "REGISTRY_STORAGE_S3_ACCESSKEY": <KEY>,
    "REGISTRY_STORAGE_S3_SECRETKEY": <SECRET>
}
Run Code Online (Sandbox Code Playgroud)

看起来REGISTRY_STORAGE我们通过定义覆盖中的那个config.yml.