我遇到了一个Flask脚本的问题,它包含:useradd_cmd = F'docker exec -it {container_name} /usr/sbin/useradd -m -s /bin/bash -p $(openssl passwd -1 {password}) {username}' subprocess.call(useradd_cmd, shell=True) #run a command to add a user to the container
我想在容器中动态创建一个用户,但是,当它执行时,我有同样的错误:/bin/sh: 1: docker: not found
我试图指定“可执行文件=/bin/bash”,但同样的错误(而不是“sh”,“bash”)
如何在Python脚本中执行此命令?
谢谢你
编辑:对的,伙计们,我只是一个大笨蛋菜鸟!我刚刚意识到我的Flask应用程序是在一个容器中,所以它不能工作!抱歉...
1条答案
按热度按时间2uluyalo1#
进入您通常运行
docker
命令的终端,然后运行:它将告诉您在与
docker
交互时shell实际运行的完整路径。在
subprocess.call()
中使用完整路径,或者更好的是,按照documentation的建议使用subprocess.run()
。