当前目录上Python中的脚本

2024-05-12 22:51:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我在一个特殊的情况下,我试图找到一个干净的解决办法。在

目前我们有18个不同的回购,所有这些都是用python部署工具用venv复制和粘贴18次。。。对我来说这太恶心了。在

我希望将这些实用程序放入某种“工具”docker映像中,并在需要的地方执行它们,而不是让每个文件夹安装所有依赖项18次。在

/devtools/venv
/user-service/code
/data-service/code
/proxy-service/code
/admin-service/code

最后,我希望CD到用户服务中,并运行一个类似于docker run tools version_update.py的命令,让docker映像挂载用户服务的代码并对其运行脚本。在

我该怎么做,还有没有更好的方法我看不到?在


Tags: 工具docker实用程序文件夹venv粘贴部署地方
2条回答

为什么使用docker?在

我建议您将脚本放在服务旁边的“tools”目录中(或者您认为合适的地方),然后您可以cd到您的服务目录中并运行python ../tools/version_update.py。在

这取决于你的docker形象,但这里是基本概念。在

在docker映像中,假设我们有一个/code目录,我们将在其中装载我们要处理的源代码,以及一个包含所有脚本的/tools目录。在

然后,我们可以把我们想要的任何目录挂载到docker映像中的/code目录中,然后运行我们想要的任何脚本。容器内的工作目录将被设置为/code,路径中也将有/tools。因此,使用您的示例,docker run命令如下所示。在

docker run -v /user-service/code:/code tools version_update.py

这将运行toolsdocker映像,将本地/user-service/code目录挂载到容器中的/code目录,然后在该代码上运行version_update.py脚本。然后离开。在

同一个映像也可以用于所有其他项目,只需更改装载点。(假设它们都有相同的结构)

^{pr2}$

如果你想运行一个不同的工具,只需更改你传入的命令。在

docker run -v /user-service/code:/code tools other_command.py

相关问题 更多 >