Skip to content
This repository was archived by the owner on Dec 6, 2023. It is now read-only.
hlafaillePublic archive

About

Define your containerized stack as Python

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

Microstack

Define your containerized stack in Python.

Planned

  • Implement an abstract syntax tree as compiler output, instead of generating raw Python. This will allow us to implement multiple outputs.

Usage

Create stack.py, describe your stack using familiar names as Python types.

from microstack.schemas import Network, Service, Mount


# Networks
class MyBackend(Network):
    """My backend network!"""


class MyFrontend(Network):
    """My frontend network!"""


# Services
class Frontend(Service):
    image: str = "alpine:latest"
    name: str = "frontend"
    networks: list[Network] = [MyBackend()]
    mounts: list[Mount] = [Mount(source="/path/to/my/frontend/development/repo", target="/app")]


class Backend(Service):
    image: str = "alpine:latest"
    name: str = "backend"
    networks: list[Network] = [MyBackend()]
    mounts: list[Mount] = [Mount(source="/path/to/my/backend/development/repo", target="/app")]


class Nginx(Service):
    image: str = "nginx:latest"
    name: str = "nginx"
    networks: list[Network] = [MyBackend()]

...run the orchestrator

[INFO] dealing with '/home/hunter/PycharmProjects/microstack/stack.py' as our stack description
[INFO] creating network 'MyBackend'
[INFO] creating network 'MyFrontend'
[WARNING] mount source '/path/to/my/frontend/development/repo' does not exist on host, will be created by docker
[WARNING] mount source '/path/to/my/backend/development/repo' does not exist on host, will be created by docker
[WARNING] 'alpine:latest' for 'frontend' was not found, pulling
[WARNING] 'alpine:latest' for 'backend' was not found, pulling
[WARNING] 'nginx:latest' for 'nginx' was not found, pulling
[INFO] running 'frontend'
[INFO] running 'backend'
[INFO] running 'nginx'

About

Define your containerized stack as Python

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages