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

使用Docker Compose运行带输入参数的Python脚本遇阻求助

问题解决:Docker Compose运行交互式Python脚本生成Excel

问题分析

你的配置逻辑本身没问题,但脚本需要交互式输入,直接用docker-compose up运行时,默认不会把终端输入传递给容器,导致脚本卡在等待输入的状态,看起来像是没执行main.py。另外当前卷挂载路径是正确的,但要确保生成的Excel能正确映射到宿主机。

修复方案

1. 用正确的命令启动交互式容器

直接用docker-compose up不适合交互式任务,推荐用docker-compose run命令,它会自动绑定终端输入输出:

docker-compose run 2numbers

如果非要用docker-compose up,需要加上--attach参数绑定终端:

docker-compose up --attach 2numbers

2. 优化脚本输出路径(可选)

为了确保Excel精准生成到宿主机当前目录,可以在脚本里指定容器内的绝对挂载路径(容器内/main对应宿主机当前目录):
修改main.py的保存代码:

df.to_excel("/main/test.xlsx")

3. 排查容器执行问题

如果还是异常,可通过以下方式验证:

  • 查看容器日志确认脚本状态:docker logs container_2numbers
  • 进入容器手动执行脚本测试:docker exec -it container_2numbers python main.py

可选优化:让脚本执行完自动退出

如果不需要容器持续运行,可去掉docker-compose.yml里的tty: true(保留stdin_open: true即可支持交互),这样脚本生成Excel后容器会自动停止:

version: '3.8'

services:
  2numbers:
    build: .
    image: 2numbers
    container_name: container_2numbers
    stdin_open: true
    volumes:
      - ./:/main
    command: python main.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:05:04