docker-compose.yml报environment字段类型无效无法启动求助
你的Compose文件存在多处YAML语法及配置规则错误,按优先级修正如下:
- 触发
environment字段非法类型报错的直接原因:YAML数组格式要求短横线-后必须加空格,你所有环境变量的-后都没有空格,导致YAML解析器将整个environment字段识别为单个字符串,而非数组,触发类型校验错误。 - 语法错误2:
wowonder-web服务的volumes配置多写了一个冒号,宿主机路径和容器路径只能用1个冒号分隔,原配置/opt/wowonder/app:/appwowonder:/app属于非法格式,按常规需求调整为/opt/wowonder/app:/app即可。 - 语法错误3:
wowonder-db服务的command字段缩进错误,目前缩进到了volumes字段的子级,需调整为和environment、volumes同级。 - 配置错误1:内容里的
"是HTML转义编码错误,要替换为正常双引号,环境变量值无特殊字符时也可以直接省略引号。 - 配置错误2:MariaDB默认数据存储目录为
/var/lib/mysql,你配置的/var/lib/mysqldb路径错误,会导致数据无法持久化。
修正后的完整配置如下:
--- version: '3.5' services: wowonder-web: container_name: wowonder-web image: webdevops/php-apache:debian-10 environment: - WEB_DOCUMENT_ROOT=/app - PHP_MEMORY_LIMIT=1024M - PHP_MAX_EXECUTION_TIME=7200 - PHP_POST_MAX_SIZE=10240M - PHP_UPLOAD_MAX_FILESIZE=10240M - FPM_MAX_REQUESTS=500 - FPM_PM_MAX_CHILDREN=20 - FPM_PM_START_SERVERS=10 - FPM_PM_MIN_SPARE_SERVERS=5 - FPM_PM_MAX_SPARE_SERVERS=15 volumes: - /opt/wowonder/app:/app restart: unless-stopped wowonder-db: container_name: wowonder-db image: mariadb environment: - MYSQL_ROOT_PASSWORD="wowonder" - MYSQL_PASSWORD="wowonder" - MYSQL_DATABASE="wowonder" - MYSQL_USER="wowonder" volumes: - /docker/Databases/wowonder:/var/lib/mysql command: --sql-mode="NO_ENGINE_SUBSTITUTION" restart: unless-stopped networks: default: external: name: imlala
内容的提问来源于stack exchange,提问作者Orange Training
相关产品推荐
相关产品推荐

