对docker客户端执行本地的python脚本 – 没有卷
我可以运行一个bash脚本本地到我的docker客户端(不是本地的docker主机或目标容器),而不使用卷或将脚本复制到容器:
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如何将parameter passing给dockerized managed.py的script.py? 再次,什么不工作的例子(对我来说):
./script.sh arg1 arg2 | docker run django shell docker run django shell < echo "$(./script.sh arg1 arg2)"
我认为最好的办法是使用使用COPY或ADD命令的自定义Dockerfile将任何脚本移动到容器中。
至于传递参数,你可以在你的图像中使用ENTRYPOINT命令,如下面的例子:
ENTRYPOINT django shell /home/script.sh
然后你可以使用docker run arg1 arg2
来传递参数
这是将命令行parameter passing给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里面,你可以拷贝脚本,然后使用COPY,RUN命令删除它(原因:因为docker是一个孤立的环境,所以不能从外部运行(I GUESS ..))
希望它回答你的问题。 祝一切顺利
- 无法使用PyCharm 5在Docker容器上进行debugging
- Django&WordPress的 – wp-adminredirect问题
- Celery + Docker + Django无法运行asynchronous作业
- Django的优惠券不能导入名称“模式”在docker化的Django的Web应用程序
- 在Docker-compose中使用git fork软件包的问题
- 通过Docker IP地址阻止Docker通信
- 在使用Docker容器设置开发环境时,如何pipe理开发任务?
- 在postgres docker容器中创build一个用户
- docker-compose不下载requirements.txt文件的附加内容