44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
"""Example usage of DockerComposeManager to generate a docker-compose.yaml file."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
from compose import DockerComposeManager
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
logger: logging.Logger = logging.getLogger("docker-compose-example")
|
|
|
|
if __name__ == "__main__":
|
|
# Path to the compose file to generate
|
|
compose_path = "docker-compose.yaml"
|
|
|
|
# Create a DockerComposeManager instance
|
|
manager = DockerComposeManager(compose_path)
|
|
|
|
# Add a simple web service
|
|
manager.create_service(
|
|
name="web",
|
|
image="nginx:alpine",
|
|
ports=["8080:80"],
|
|
environment={"NGINX_HOST": "localhost"},
|
|
)
|
|
|
|
# Add a database service
|
|
manager.create_service(
|
|
name="db",
|
|
image="postgres:15-alpine",
|
|
environment={
|
|
"POSTGRES_USER": "user",
|
|
"POSTGRES_PASSWORD": "password",
|
|
"POSTGRES_DB": "example_db",
|
|
},
|
|
ports=["5432:5432"],
|
|
volumes=["db_data:/var/lib/postgresql/data"],
|
|
)
|
|
|
|
# Save the compose file
|
|
manager.save()
|
|
|
|
logger.info("docker-compose.yaml generated at %s", compose_path)
|