feat: requirements file search
This commit is contained in:
@@ -1,10 +1,9 @@
|
|||||||
import docker
|
import docker
|
||||||
from ctypes.wintypes import tagSIZE
|
|
||||||
|
|
||||||
client = docker.from_env()
|
client = docker.from_env()
|
||||||
running_containers = []
|
running_containers = []
|
||||||
sleeping_containers = []
|
# sleeping_containers = []
|
||||||
for c in client.containers.list(all=True):
|
for c in client.containers.list():
|
||||||
info = c.attrs # словарь со всеми данными
|
info = c.attrs # словарь со всеми данными
|
||||||
image = info["Config"]["Image"] # образ
|
image = info["Config"]["Image"] # образ
|
||||||
created = info["Created"] # время создания
|
created = info["Created"] # время создания
|
||||||
@@ -12,9 +11,21 @@ for c in client.containers.list(all=True):
|
|||||||
ports = info["NetworkSettings"]["Ports"] # проброшенные порты ЪЪЪ
|
ports = info["NetworkSettings"]["Ports"] # проброшенные порты ЪЪЪ
|
||||||
mounts = info.get("Mounts", []) # маунты
|
mounts = info.get("Mounts", []) # маунты
|
||||||
status = c.status # статус контейнера (вкл-выкл)
|
status = c.status # статус контейнера (вкл-выкл)
|
||||||
tags = c.image.tags
|
ver = c.image.tags[0].split(':')[-1] # версия
|
||||||
|
workdir = info["Config"].get("WorkingDir") or '/' # рабочая директория
|
||||||
|
find_cmd = (
|
||||||
|
f"sh -c \"cd {workdir} 2>/dev/null && "
|
||||||
|
"find . -maxdepth 3 \\( "
|
||||||
|
"-name 'requirements*.txt' -o "
|
||||||
|
"-name 'Pipfile' -o "
|
||||||
|
"-name 'pyproject.toml' -o "
|
||||||
|
"-name 'package.json' "
|
||||||
|
"\\) 2>/dev/null | head -n 5\""
|
||||||
|
)
|
||||||
|
req = c.exec_run(find_cmd)[1].decode() # путь до файла с зависимостями
|
||||||
container = {
|
container = {
|
||||||
"name": c.name,
|
"name": c.name,
|
||||||
|
"version": ver,
|
||||||
"image": image,
|
"image": image,
|
||||||
"id": c.id[:12],
|
"id": c.id[:12],
|
||||||
"create_time": created,
|
"create_time": created,
|
||||||
@@ -23,6 +34,5 @@ for c in client.containers.list(all=True):
|
|||||||
}
|
}
|
||||||
if status == "running":
|
if status == "running":
|
||||||
running_containers.append(container)
|
running_containers.append(container)
|
||||||
else:
|
# else:
|
||||||
sleeping_containers.append(container)
|
# sleeping_containers.append(container)
|
||||||
print(tags)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user