29 lines
735 B
Python
29 lines
735 B
Python
import docker
|
|
from docker import DockerClient
|
|
|
|
import logger
|
|
|
|
# Container Management
|
|
|
|
## Build Image
|
|
def build(client: DockerClient, app: str):
|
|
with open(f"{app}/Dockerfile") as dockerfile:
|
|
image, _ = client.images.build(fileobj=dockerfile, tag=app)
|
|
return image
|
|
|
|
## Run Image
|
|
def run(client: DockerClient, image, app: str):
|
|
container = client.containers.run(image, detach=True, name=f"autopkg-{app}")
|
|
return container
|
|
|
|
# Main Packaging Function
|
|
def pkg(app, version):
|
|
client = docker.from_env() # Docker.sock connection
|
|
|
|
try:
|
|
image = build(client, app)
|
|
|
|
container = run(client, image, app)
|
|
except Exception as e:
|
|
logger.log(f"Error starting docker container for {app}", 40)
|