【问题标题】:execute python script local to docker client - no volumes在 docker 客户端本地执行 python 脚本 - 没有卷
【发布时间】:2015-06-25 20:50:32
【问题描述】:

我可以在我的 docker 客户端(不是 docker 主机或目标容器本地)运行 bash 脚本本地,而无需使用卷或将脚本复制到容器:

docker run debian bash -c "`cat script.sh`"

Q1 如何在 django 容器上进行等效操作?以下内容不起作用,但我的帮助演示了我要求的内容(bash 脚本 printf 带有扩展参数的 python 脚本行):

docker run django shell < `cat script.py`
cat script.py | docker run django shell

Q2 如何将参数传递给传递给 dockerized managed.py 的 script.py?再一次,什么不起作用的例子(对我来说):

./script.sh arg1 arg2 | docker run django shell
docker run django shell < echo "$(./script.sh arg1 arg2)"

【问题讨论】:

    标签: python django docker


    【解决方案1】:

    我认为对您来说最好的方法是使用自定义 Dockerfile,该文件使用 COPY 或 ADD 命令将您的任何脚本移动到容器中。

    至于传递参数,您可以在图像中使用 ENTRYPOINT 命令,如下例所示:

    ENTRYPOINT django shell /home/script.sh
    

    那么你可以使用docker run arg1 arg2来传递参数

    【讨论】:

    • 感谢您的回复,但问题是具体如何在不复制或卷的情况下做到这一点,就像 bash 示例一样。 manage.py 是入口点,但没有 -c 并且 shell 不接受参数。它几乎比 docker 更像是一个 python 问题。
    【解决方案2】:

    这是将命令行参数传递给 python 的链接:http://www.tutorialspoint.com/python/python_command_line_arguments.htm

    例如:python script.py -param1

    如果脚本已经在 docker 中可用,您可以使用 Dockerfile(带传递参数)触发它

    RUN /script.py -param1 <value>
    

    额外: 话虽如此,如果要频繁更改更多参数,总是很难更改 Dockerfile。因此可以编写一个小的 shell 脚本作为 Dockerfile 的包装器,如下所示:

    Dockerwrapper.sh
    
    pass parameters to Dockerfile
    dockerbuild --tag <name> .
    

    -

    Dockerfile 
    
     RUN python script.py -param1 $1
    

    我-------------------------------------------

    docker 中不存在 IF 脚本 您可以将脚本复制到里面,然后使用 COPY,RUN 命令将其删除... (原因:由于 docker 是一个孤立的环境,所以无法从外部运行(我猜..))

    希望它能回答你的问题。 万事如意

    【讨论】:

    • 感谢普拉蒂克的回答。有几件事,脚本是 docker 客户端本地的,而不是 docker 主机。我追求的是 bash 示例(docker run debian bash -c "cat script.sh")的等效项,其中 script.sh 在我的笔记本电脑上,并且没有复制到 Docker 文件中,也没有在运行时通过主机卷访问。跨度>
    • 请使用 Exec 命令将脚本 ssh 到 docker 主机。对于传递参数,请使用 Dockerfile 而不是 -c。
    猜你喜欢
    • 2015-09-02
    • 2015-07-17
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2022-11-10
    • 2016-03-10
    相关资源
    最近更新 更多