python - Docker-组合输入参数

标签 python docker docker-compose

我是 docker 世界的新手。我尝试将我的脚本放入 docker 中,如果直接在命令提示符中运行,我的脚本将采用输入参数 - 我的脚本中有两个变量使用 input("enter the input here")论证。

当我直接通过 cmd python scripts.py 尝试我的脚本时它运行良好,但我尝试使用 docker-compose 对我的脚本进行 dockerize,但它引发了

bigquery_1  | Enter input: Traceback (most recent call last):
bigquery_1  |   File "./scripts/bq.py", line 6, in <module>
bigquery_1  |     default_filterDate_1 = (str(input(" Enter input: ")) or `some default arguments`)
bigquery_1  | EOFError: EOF when reading a line
bigquery_1 exited with code 1

这就是我的 Dockerfile 的样子:

FROM python:3.7

WORKDIR /usr/src/app

COPY ./code /usr/src/app/

RUN pip3 install -r ./requirements.txt

这是 docker-compose.yml

version: '3.8'

services: 
    bigquery:
        build: ./
        command: python ./scripts/bq.py

是否有关于如何使用 docker 传递输入变量的解决方法?

最佳答案

来自类似的问题:https://stackoverflow.com/a/39150040/13731995 。基本上,您需要将 ttystdin_open 添加到您的 docker compose 文件中。

version: '3.8'

services: 
    bigquery:
        build: ./
        tty: true
        stdin_open: true
        command: python ./scripts/bq.py

关于python - Docker-组合输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68436373/

相关文章:

docker - 访问另一个 docker 容器中生成的数据

python - 将图像上传到 s3 后,上传随附的缩略图

docker - Docker Compose 构建中的 Nuget 包还原错误

docker - 如何在 OpenShift 中使用 "oc new-app"向 docker run 提供参数?

docker - 多个 GPU 是否可以作为一个具有更多内存的 GPU 一起工作?

docker - 来自 docker-compose.yml 入口点中 env 文件的环境变量

postgresql - docker-compose - 无法附加到容器

python - If-Then-ElseIf-Then 在混合整数线性规划中

python - PsychoPy 中具有多种颜色的文本

python - 如何列出没有测试用例的 .robot 文件中的所有关键字