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

Docker-Compose.yml缩进问题致Rails环境搭建报错,求排查

Docker Compose配置错误排查(Rails开发环境搭建)

执行命令 docker-compose run web rails new . --force --no-deps --database=mysql 时触发以下错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.mysql: 'MYSQL_ROOT_PASSWORD'
services.mysql.environment contains an invalid type, it should be an object, or an array

错误原因

你的docker-compose.yml中mysql服务的environment配置存在缩进问题。YAML依赖缩进识别层级关系,MYSQL_ROOT_PASSWORD: root没有缩进,被解析为services.mysql的直接配置项,而非environment的子属性,导致Compose无法识别该配置。

修正后的完整配置

version: '3'
services:
  mysql:
    image: mysql:8.0.16
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - ./mysql-data:/var/lib/mysql
    environment:
      # 增加缩进,将环境变量归为environment的子项
      MYSQL_ROOT_PASSWORD: root
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3001:3000"
    depends_on:
      - mysql
    tty: true

关键修正点

  • 在environment:下方的MYSQL_ROOT_PASSWORD: root前添加缩进(通常用2或4个空格,与mysql服务下的image、command等配置项对齐),确保它属于environment的子属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:10:30