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

如何向docker-compose传递参数?我的Python脚本参数配置失效

问题原因与修改方案

当前配置无效的核心原因是:你在docker-compose.yml中使用的build.args是Docker镜像构建阶段的参数,而非容器运行时传递给Python脚本的命令行参数。同时你的docker-compose.yml还存在语法错误,需要先修正。

步骤1:修正docker-compose.yml的语法错误

原配置中build: .与下方的context: .重复,属于语法错误,需删除build: .,正确的build块格式如下:

version: "3.3"
services:
  mm:
    container_name: mm
    stdin_open: true
    build:
      context: .
      dockerfile: Dockerfile

步骤2:传递运行时参数给Python脚本

有两种常用方案可选:

方案一:直接在command中指定脚本参数

修改docker-compose.yml,添加command字段,直接指定带参数的Python启动命令:

version: "3.3"
services:
  mm:
    container_name: mm
    stdin_open: true
    build:
      context: .
      dockerfile: Dockerfile
    command: python3 main.py --strat 1

容器启动时会执行该命令,--strat 1会被传递给你的argparse脚本。

方案二:通过环境变量传递(更灵活)

如果需要更灵活的参数配置,可以用环境变量传递,同时修改Python脚本兼容环境变量:

  1. 修改docker-compose.yml,添加环境变量:
version: "3.3"
services:
  mm:
    container_name: mm
    stdin_open: true
    build:
      context: .
      dockerfile: Dockerfile
    environment:
      - STRAT=1
  1. 修改Python脚本,支持从环境变量读取默认值:
import argparse
import os

parser = argparse.ArgumentParser()
parser.add_argument(
    '--strat', 
    type=str, 
    default=os.getenv('STRAT')  # 从环境变量取默认值
)
args = parser.parse_args()
strat = args.strat

这种方式既支持通过命令行传递--strat参数,也支持通过环境变量配置,适合需要动态调整参数的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:20:35