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

Docker Compose运行报错:环境变量类型无效问题求助

解决Docker Compose配置文件无效的问题

嘿,这个报错很典型——你的login-service里的environment字段格式写错啦!Docker Compose 3规范里,environment不接受你用的那种{"REDIS_HOST": "redis-server"}对象格式,它要求要么是**KEY=VALUE格式的字符串数组**,要么是直接的YAML键值对。

错误原因拆解

报错信息里明确说:services.login-service.environment contains {"REDIS_HOST": "redis-server"}, which is an invalid type, it should be a string,意思就是你把环境变量写成了一个JSON对象,但Compose期望的是符合规范的字符串结构。

两种正确的写法

写法一:字符串数组(推荐,跨版本兼容性更好)

environment:
  - REDIS_HOST=redis-server

写法二:YAML键值对

environment:
  REDIS_HOST: redis-server

修正后的完整docker-compose.yml文件

另外我注意到你的配置里login-service的networks字段最后写的是my-netw...,应该是拼写错误,我一起帮你修正了:

version: '3'
services:
  redis:
    image: redis
    ports:
      - 6379:6379
    networks:
      - my-network
  login-service:
    tty: true
    build: .
    volumes:
      - ./:/usr/src/app
    ports:
      - 3001:3001
    depends_on:
      - redis
    environment:
      # 这里用了推荐的数组写法,你也可以换成键值对写法
      - REDIS_HOST=redis-server
    networks:
      - my-network
networks:
  my-network:
    driver: bridge

验证方法

修改完之后,你可以先运行这个命令检查配置文件是否合法:

docker-compose config

如果没有报错,就可以正常启动服务啦:

docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:22:28