fix: 2-phase deploy (first deploy, then set domain without :443 + redeploy)

This commit is contained in:
Agent Zero
2026-08-05 22:57:25 +02:00
parent 48e6b15bb2
commit eb074bfb4d
+43 -18
View File
@@ -1180,24 +1180,8 @@ def deploy_initial() -> int:
steps.append(("Set envs", StepResult(False, str(e))))
_print_result(steps[-1][1])
# Step 4: Set domain via docker_compose_domains + Deploy
print("\n[4/4] Setting domain and deploying...")
if APP_DOMAIN:
try:
resp = httpx.patch(
f"{client.base_url}/api/v1/applications/{app_uuid}",
headers=client.headers,
json={
"docker_compose_domains": [
{"name": "crm_app", "domain": f"{APP_DOMAIN}:443"}
]
},
timeout=30,
)
print(f" Domain set: {APP_DOMAIN}:443 ({resp.status_code})")
except Exception as e:
print(f" Warning: could not set domain: {e}")
# Step 4: First Deploy (without domain — Coolify needs to read docker-compose.yaml first)
print("\n[4/5] Deploying docker-compose stack (first deploy)...")
try:
resp = httpx.post(
f"{client.base_url}/api/v1/deploy",
@@ -1224,6 +1208,47 @@ def deploy_initial() -> int:
print_summary(steps)
return 1
# Step 5: Set domain via docker_compose_domains (after first deploy, then redeploy)
print("\n[5/5] Setting domain and redeploying...")
if APP_DOMAIN:
try:
resp = httpx.patch(
f"{client.base_url}/api/v1/applications/{app_uuid}",
headers=client.headers,
json={
"docker_compose_domains": [
{"name": "crm_app", "domain": APP_DOMAIN}
]
},
timeout=30,
)
print(f" Domain set: {APP_DOMAIN} ({resp.status_code})")
# Redeploy with domain labels
time.sleep(5)
resp2 = httpx.post(
f"{client.base_url}/api/v1/deploy",
headers=client.headers,
json={"uuid": app_uuid},
timeout=30,
)
if resp2.status_code == 200:
deploy_data = resp2.json()
deployments = deploy_data.get("deployments", [])
if deployments:
deploy_uuid = deployments[0].get("deployment_uuid", "")
print(f" Redeploy queued: {deploy_uuid[:12]}")
r = _wait_deployment(client, deploy_uuid, timeout=600)
else:
r = StepResult(True, "Redeploy triggered (no UUID)")
else:
r = StepResult(False, f"Redeploy failed: {resp2.status_code}")
except Exception as e:
r = StepResult(False, f"Domain/Redeploy failed: {e}")
else:
r = StepResult(True, "No domain set (APP_DOMAIN not configured)")
steps.append(("Set domain + redeploy", r))
_print_result(r)
# Verification
print("\n[5/5] Running verification...")
verify_results = run_verification(client, worker_uuid=None)