"""Docker Compose controller""" from yaml import safe_dump from passbook import __version__ from passbook.outposts.controllers.base import BaseController class DockerComposeController(BaseController): """Docker Compose controller""" image_base = "beryju/passbook" def run(self): self.logger.warning("DockerComposeController does not implement run") raise NotImplementedError def get_static_deployment(self) -> str: """Generate docker-compose yaml for proxy, version 3.5""" ports = [f"{x}:{x}" for _, x in self.deployment_ports.items()] compose = { "version": "3.5", "services": { f"passbook_{self.outpost.type}": { "image": f"{self.image_base}-{self.outpost.type}:{__version__}", "ports": ports, "environment": { "PASSBOOK_HOST": self.outpost.config.passbook_host, "PASSBOOK_INSECURE": str( self.outpost.config.passbook_host_insecure ), "PASSBOOK_TOKEN": self.outpost.token.token_uuid.hex, }, } }, } return safe_dump(compose, default_flow_style=False)