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)
 | 
