37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""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)
|