You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose 3配置报错:VIRTUAL_HOST多行写法问题排查

解决Docker Compose中VIRTUAL_HOST多行配置的YAML语法错误

这个报错是因为你在使用YAML折叠块标量(>)时,缩进格式不符合规则导致的。YAML要求块标量的内容行必须比对应的键有更深的缩进,而你的内容行和VIRTUAL_HOST键的缩进级别一致,解析器会把它当成一个新的顶级键,自然找不到对应的冒号,从而抛出扫描错误。

下面给你几种正确的配置方式:

方式1:正确使用折叠块标量(推荐)

保持你的多行写法,但确保内容行的缩进比VIRTUAL_HOST键更深(比如多2个空格),折叠块标量会自动把换行转换成空格,最终生成正确的逗号分隔字符串:

nginx:
  image: nginx
  container_name: nginx
  environment:
    VIRTUAL_HOST: >
      proj1.local,proj2.local,
      proj3.local,proj4.local,
      proj5.local

方式2:使用数组形式(部分镜像支持)

如果你的Nginx镜像(比如常用的jwilder/nginx-proxy)支持将VIRTUAL_HOST作为数组传入,可以直接写成数组形式,Docker Compose会自动将其转换为逗号分隔的字符串:

nginx:
  image: nginx
  container_name: nginx
  environment:
    VIRTUAL_HOST:
      - proj1.local
      - proj2.local
      - proj3.local
      - proj4.local
      - proj5.local

方式3:用双引号包裹多行字符串

你也可以用双引号把多行内容包裹起来,YAML会保留换行但最终解析为单行字符串(注意逗号不要换行后遗漏):

nginx:
  image: nginx
  container_name: nginx
  environment:
    VIRTUAL_HOST: "proj1.local,proj2.local,
      proj3.local,proj4.local,proj5.local"

内容的提问来源于stack exchange,提问作者Jumpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:45:47