|
26 | 26 | INFRAHUB_SERVICE_CATALOG = os.getenv("INFRAHUB_SERVICE_CATALOG", "false").lower() == "true" |
27 | 27 | INFRAHUB_GIT_LOCAL = os.getenv("INFRAHUB_GIT_LOCAL", "false").lower() == "true" |
28 | 28 | MAIN_DIRECTORY_PATH = Path(__file__).parent |
| 29 | +INFRAHUB_PROJECT_NAME = os.getenv("INFRAHUB_PROJECT_NAME", MAIN_DIRECTORY_PATH.name) |
29 | 30 |
|
30 | 31 |
|
31 | 32 | # Download compose file and use with override |
32 | 33 | def get_compose_command() -> str: |
33 | | - """Generate docker compose command with override support.""" |
| 34 | + """Generate docker compose command with override support. |
| 35 | +
|
| 36 | + Supports layered compose files: |
| 37 | + 1. docker-compose.yml (base, downloaded or local) |
| 38 | + 2. docker-compose.override.yml (committed overrides, uses env vars for ports) |
| 39 | +
|
| 40 | + The project name is controlled by INFRAHUB_PROJECT_NAME env var, |
| 41 | + defaulting to the directory name. |
| 42 | + """ |
34 | 43 | local_compose_file = MAIN_DIRECTORY_PATH / "docker-compose.yml" |
35 | 44 | override_file = MAIN_DIRECTORY_PATH / "docker-compose.override.yml" |
36 | 45 |
|
37 | | - # Check if local docker-compose.yml exists |
| 46 | + base_cmd = f"docker compose -p {INFRAHUB_PROJECT_NAME}" |
| 47 | + |
| 48 | + # If we have a local docker-compose.yml, use it directly |
38 | 49 | if local_compose_file.exists(): |
39 | | - # Use local docker-compose.yml file |
| 50 | + cmd = f"{base_cmd} -f {local_compose_file}" |
40 | 51 | if override_file.exists(): |
41 | | - return f"docker compose -p infrahub -f {local_compose_file} -f {override_file}" |
42 | | - return f"docker compose -p infrahub-bundle-dc -f {local_compose_file}" |
| 52 | + cmd += f" -f {override_file}" |
| 53 | + return cmd |
43 | 54 |
|
44 | 55 | # Fall back to downloading from infrahub.opsmill.io |
45 | | - # Determine the base URL based on edition |
46 | 56 | if INFRAHUB_ENTERPRISE: |
47 | 57 | base_url = f"https://infrahub.opsmill.io/enterprise/{INFRAHUB_VERSION}" |
48 | 58 | else: |
49 | 59 | base_url = f"https://infrahub.opsmill.io/{INFRAHUB_VERSION}" |
50 | 60 |
|
| 61 | + cmd = f"curl -s {base_url} | {base_cmd} -f -" |
51 | 62 | if override_file.exists(): |
52 | | - return f"curl -s {base_url} | docker compose -p infrahub -f - -f {override_file}" |
53 | | - return f"curl -s {base_url} | docker compose -p infrahub -f -" |
| 63 | + cmd += f" -f {override_file}" |
| 64 | + return cmd |
54 | 65 |
|
55 | 66 |
|
56 | 67 | def get_compose_source() -> str: |
@@ -119,6 +130,7 @@ def info(context: Context) -> None: |
119 | 130 | info_msg = ( |
120 | 131 | f"[cyan]Edition:[/cyan] {edition}\n" |
121 | 132 | f"[cyan]Version:[/cyan] {INFRAHUB_VERSION}\n" |
| 133 | + f"[cyan]Project Name:[/cyan] {INFRAHUB_PROJECT_NAME}\n" |
122 | 134 | f"[cyan]Compose Source:[/cyan] {COMPOSE_SOURCE}\n" |
123 | 135 | f"[cyan]Service Catalog:[/cyan] {'Enabled' if INFRAHUB_SERVICE_CATALOG else 'Disabled'}\n" |
124 | 136 | f"[cyan]Local Git Repository:[/cyan] {'Enabled' if INFRAHUB_GIT_LOCAL else 'Disabled'}\n" |
|
0 commit comments