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

Debian11下Bash脚本调用docker-compose失效问题求助

Docker Compose脚本错误排查与修复

错误根源

  • DOCKER_CONFIG是Docker官方定义的环境变量,用于指定Docker的配置目录路径,而非Compose配置文件路径。你将其赋值为docker-compose-test.yml(一个文件),导致Docker尝试在该"目录"下读取config.json,触发"not a directory"错误。
  • 后续的mkdir错误是因为服务逻辑误用到了这个被错误赋值的变量,试图将其作为目录创建,但目标并非目录,因此失败。

修复方案

方案1:使用自定义变量名

修改脚本,替换掉冲突的环境变量名:

#!/bin/bash
#start development

# 自定义变量名,避免覆盖Docker官方环境变量
export MY_COMPOSE_CONFIG=${MY_COMPOSE_CONFIG:-docker-compose-test.yml}
docker-compose -f "$MY_COMPOSE_CONFIG" build
#./bin/db_init.sh

docker-compose -f "$MY_COMPOSE_CONFIG" up

方案2:使用Compose官方环境变量

Docker Compose原生支持COMPOSE_FILE环境变量,可直接指定配置文件,无需在命令中添加-f参数:

#!/bin/bash
#start development

# 利用Compose官方环境变量指定配置文件
export COMPOSE_FILE=${COMPOSE_FILE:-docker-compose-test.yml}
docker-compose build
#./bin/db_init.sh

docker-compose up

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:02:06