如何在 docker-compose.yml 中将 MERCURE_EXTRA_DIRECTIVES 作为环境指令传递

问题描述

新的 (0.11) mercure 配置将所有额外的指令分组到一个环境变量中。 我正在尝试通过 docker-compose.yml 设置它,但我不知道是否可行:

environment:   
  MERCURE_PUBLISHER_JWT_KEY: /docker/public.pem  
  MERCURE_SUBSCRIBER_JWT_KEY: /docker/public.pem  
  MERCURE_PUBLISHER_JWT_ALG: RS256   MERCURE_SUBSCRIBER_JWT_ALG: RS256  
  MERCURE_EXTRA_DIRECTIVES:
     anonymous: 0
     demo: 0
     write_timeout: 15m

此块因 .environment.MERCURE_EXTRA_DIRECTIVES contains {"anonymous": 0,"demo": 0,... } 而失败,该类型无效,它应该是字符串、数字或空值

如何通过 docker-compose 将所有指令传递给 mercure?

解决方法

试试这个:

environment:   
  MERCURE_PUBLISHER_JWT_KEY: /docker/public.pem  
  MERCURE_SUBSCRIBER_JWT_KEY: /docker/public.pem  
  MERCURE_PUBLISHER_JWT_ALG: RS256   
  MERCURE_SUBSCRIBER_JWT_ALG: RS256  
  MERCURE_EXTRA_DIRECTIVES: |
     anonymous 0 
     demo 0
     write_timeout 15m

所以 MERCURE_EXTRA_DIRECTIVES 被解释为长字符串