deploy.py: create_api_application ueber /applications/private-deploy-key (Git-basiert)
This commit is contained in:
+15
-17
@@ -806,35 +806,33 @@ def set_service_envs(client: CoolifyClient, service_uuid: str, envs: list[dict])
|
|||||||
|
|
||||||
def create_api_application(client: CoolifyClient, project_uuid: str,
|
def create_api_application(client: CoolifyClient, project_uuid: str,
|
||||||
environment_name: str, server_uuid: str) -> str | None:
|
environment_name: str, server_uuid: str) -> str | None:
|
||||||
"""Create the API application from the Dockerfile in the repo.
|
"""Create the API application from a Git repository via private deploy key.
|
||||||
|
|
||||||
|
Uses POST /applications/private-deploy-key with the Coolify host's private key.
|
||||||
|
This creates a Git-based application that can auto-update on git push.
|
||||||
|
|
||||||
Uses POST /applications/dockerfile with base64-encoded Dockerfile content.
|
|
||||||
Returns the application UUID or None on failure.
|
Returns the application UUID or None on failure.
|
||||||
"""
|
"""
|
||||||
import base64 as b64mod
|
# The private key UUID for the Coolify host (localhost)
|
||||||
|
PRIVATE_KEY_UUID = os.environ.get(
|
||||||
repo_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
"COOLIFY_PRIVATE_KEY_UUID",
|
||||||
dockerfile_path = os.path.join(repo_root, "Dockerfile")
|
"rgcsc0048c04csckk8kogk40",
|
||||||
try:
|
)
|
||||||
with open(dockerfile_path, "r") as f:
|
|
||||||
dockerfile_content = f.read()
|
|
||||||
except FileNotFoundError:
|
|
||||||
print(f" Error: Dockerfile not found at {dockerfile_path}")
|
|
||||||
return None
|
|
||||||
|
|
||||||
dockerfile_b64 = b64mod.b64encode(dockerfile_content.encode()).decode()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
resp = httpx.post(
|
resp = httpx.post(
|
||||||
f"{client.base_url}/api/v1/applications/dockerfile",
|
f"{client.base_url}/api/v1/applications/private-deploy-key",
|
||||||
headers=client.headers,
|
headers=client.headers,
|
||||||
json={
|
json={
|
||||||
"project_uuid": project_uuid,
|
"project_uuid": project_uuid,
|
||||||
"environment_name": environment_name,
|
"environment_name": environment_name,
|
||||||
"server_uuid": server_uuid,
|
"server_uuid": server_uuid,
|
||||||
"name": "leocrm-api",
|
"private_key_uuid": PRIVATE_KEY_UUID,
|
||||||
"dockerfile": dockerfile_b64,
|
"git_repository": API_GIT_REPO,
|
||||||
|
"git_branch": API_GIT_BRANCH,
|
||||||
"build_pack": "dockerfile",
|
"build_pack": "dockerfile",
|
||||||
|
"name": "leocrm-api",
|
||||||
|
"ports_exposes": "8000",
|
||||||
},
|
},
|
||||||
timeout=30,
|
timeout=30,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user