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

Docker Compose构建报错:如何在command中传递挂载卷内的配置文件?

问题分析与解决方案

错误根源

docker compose build仅负责构建镜像,不会处理容器运行阶段的volumes挂载和command执行逻辑,因此你遇到的no configuration file provided: not found错误实际是在容器启动(docker compose up)阶段触发的。核心问题是Compose变量解析时机与容器环境变量的混淆:你当前在command中使用的${CONFIGURATION_PATH}是Compose解析配置文件时从.env读取的变量,而容器运行时需要的是挂载卷在容器内的实际路径,且需确保卷挂载成功后文件可访问。

可行实现方法

方法1:使用容器内环境变量传递路径

修改Compose.yaml的command配置,让容器运行时读取自身的环境变量(由.env注入):

version: '3.8'

services:
  sort_algorithm:
    build:
      context: .
      dockerfile: Dockerfile
    env_file:
      - .env
    volumes:
      - ${VOLUME_PATH}:/share_data
    # 使用容器内的环境变量,而非Compose解析时的变量
    command: python main.py "$CONFIGURATION_PATH"

这里的$CONFIGURATION_PATH会在容器启动时读取注入的环境变量,指向容器内的/share_data/configuration.json,而宿主机的VOLUME_PATH目录已挂载到容器的/share_data,因此可以正常访问配置文件。

方法2:直接指定容器内路径

如果不需要动态配置路径,可直接在command中写死容器内的挂载路径:

command: python main.py /share_data/configuration.json

额外检查项

  • 确认宿主机VOLUME_PATH目录存在,且configuration.json文件确实在该目录下
  • 执行docker compose up启动容器,而非仅执行build(build仅构建镜像,不会启动容器)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:43:23