gpt4 book ai didi

python - 从 python 运行 .sh 脚本作为 sudo

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:34 27 4
gpt4 key购买 nike

我正在使用 python 开发一个项目,我想在其中自动创建 docker 容器。我已经有了项目文件夹,其中包含创建图像所需的所有文件。

其中之一是 create_image.sh

docker build -t my_container:latest .

目前我这样做:

sudo bash create_image.sh

但现在我需要从 python 中自动执行此过程。我试过:

import os
import subprocess
subprocess.check_call("bash -c '. create_image.sh'", shell=True)

但是我得到这个错误:

CalledProcessError: Command 'bash -c '. create_image.sh'' returned non-zero exit status 1.

编辑:

用例是通过 API 自动创建容器,我在 flask 和 python 中有代码直到此时,我被困在从 docker 文件创建图像中。其余的是从模板中自动完成的。

最佳答案

你可以试试:

subprocess.call(['sudo', 'bash', 'create_image.sh' ])

相当于

sudo bash create_image.sh

注意:让我说有更好的方法可以自动创建 docker 容器 - 请检查 docker-compose它可以轻松构建和启动容器。如果您可以详细说明用例,我们可以帮助您为 docker 提供一个优雅的解决方案。可能不是python的问题

编辑:根据评论,最好创建一个 docker-compose 和 makefile 用于发出 docker 命令。灵感 - https://medium.com/@daniel.carlier/how-to-build-a-simple-flask-restful-api-with-docker-compose-2d849d738137

关于python - 从 python 运行 .sh 脚本作为 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57896407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com