繁体   English   中英

从python自动创建容器

[英]Automate container creation from python

我正在使用python创建docker项目的模板,直到我要构建容器以创建映像的最后一步时,它工作正常。 到目前为止,我的项目结构与此类似:

project
  |--flask_server.py
  |--main_script.py
  |--image_creator.sh
  |--Dockerfile
  |--requirements.txt

我的问题是文件:image_creator.sh,它基本上具有:

docker build -t my_project:latest .

没有sudo就无法执行。 到目前为止,这是我在python脚本create_contaner.py中尝试过的内容,该脚本具有以下代码:

import os
import subprocess
...
...
subprocess.call(['image_creator.sh'])

1)

python create_contaner.py 

2)

 sudo python create_contaner.py

3)

sudo su
python create_contaner.py 

对于这三种情况,我都会得到:

PermissionError: [Errno 13] Permission denied: 'image_creator.sh'

对于最后一个

我也曾尝试加入我的当前用户,可以在不使用sudo作为解释运行泊坞窗组在这里

sudo groupadd docker
sudo gpasswd -a $USER docker

从终端执行完之后,我可以执行:

docker build -t my_project:latest .

与sudo一起使用,但是如果从该用户打开python并尝试:

python create_contaner.py

我仍然遇到相同的错误。 有人指出我使用docker-compose而不是docker build,那似乎并没有摆脱权限的问题。

在python中调用脚本之前设置对bash脚本的权限

 chmod +x image_creator.sh

如果要自动化,可以设置对python文件的权限

import os

command = os.popen('chmod +x image_creator.sh')
print(command.read())
print(command.close())

或者您检查更好的答案在这里在python中运行bash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM