disable webhook container restart
This commit is contained in:
@@ -670,83 +670,87 @@ def gitea_webhook(request):
|
|||||||
deployment_success = False
|
deployment_success = False
|
||||||
deployment_error = None
|
deployment_error = None
|
||||||
|
|
||||||
try:
|
# COMMENTED OUT: Container restart disabled to prevent auto-restart on git commits
|
||||||
# Try to use docker Python library first, fallback to subprocess
|
logger.info(f"[Webhook] Container restart is DISABLED - code updated but containers not restarted")
|
||||||
try:
|
deployment_success = True
|
||||||
import docker as docker_lib
|
|
||||||
client = docker_lib.DockerClient(base_url='unix://var/run/docker.sock')
|
|
||||||
|
|
||||||
# Restart frontend container (don't restart backend from within itself)
|
# try:
|
||||||
logger.info(f"[Webhook] Restarting frontend container...")
|
# # Try to use docker Python library first, fallback to subprocess
|
||||||
frontend_container = client.containers.get("igny8_frontend")
|
# try:
|
||||||
frontend_container.restart(timeout=30)
|
# import docker as docker_lib
|
||||||
logger.info(f"[Webhook] Frontend container restarted successfully")
|
# client = docker_lib.DockerClient(base_url='unix://var/run/docker.sock')
|
||||||
|
#
|
||||||
# Schedule backend restart via subprocess in background (non-blocking)
|
# # Restart frontend container (don't restart backend from within itself)
|
||||||
# This avoids deadlock from restarting the container we're running in
|
# logger.info(f"[Webhook] Restarting frontend container...")
|
||||||
logger.info(f"[Webhook] Scheduling backend container restart...")
|
# frontend_container = client.containers.get("igny8_frontend")
|
||||||
import threading
|
# frontend_container.restart(timeout=30)
|
||||||
def restart_backend():
|
# logger.info(f"[Webhook] Frontend container restarted successfully")
|
||||||
import time
|
#
|
||||||
time.sleep(2) # Give webhook time to respond
|
# # Schedule backend restart via subprocess in background (non-blocking)
|
||||||
try:
|
# # This avoids deadlock from restarting the container we're running in
|
||||||
backend_container = client.containers.get("igny8_backend")
|
# logger.info(f"[Webhook] Scheduling backend container restart...")
|
||||||
backend_container.restart(timeout=30)
|
# import threading
|
||||||
logger.info(f"[Webhook] Backend container restarted successfully (delayed)")
|
# def restart_backend():
|
||||||
except Exception as e:
|
# import time
|
||||||
logger.error(f"[Webhook] Delayed backend restart failed: {e}")
|
# time.sleep(2) # Give webhook time to respond
|
||||||
|
# try:
|
||||||
restart_thread = threading.Thread(target=restart_backend, daemon=True)
|
# backend_container = client.containers.get("igny8_backend")
|
||||||
restart_thread.start()
|
# backend_container.restart(timeout=30)
|
||||||
|
# logger.info(f"[Webhook] Backend container restarted successfully (delayed)")
|
||||||
deployment_success = True
|
# except Exception as e:
|
||||||
|
# logger.error(f"[Webhook] Delayed backend restart failed: {e}")
|
||||||
except ImportError:
|
#
|
||||||
# Fallback to subprocess with docker command
|
# restart_thread = threading.Thread(target=restart_backend, daemon=True)
|
||||||
logger.info(f"[Webhook] Docker library not available, using subprocess...")
|
# restart_thread.start()
|
||||||
|
#
|
||||||
# Try /usr/bin/docker or docker in PATH
|
# deployment_success = True
|
||||||
docker_cmd = "/usr/bin/docker"
|
#
|
||||||
import shutil
|
# except ImportError:
|
||||||
if not os.path.exists(docker_cmd):
|
# # Fallback to subprocess with docker command
|
||||||
docker_cmd = shutil.which("docker") or "docker"
|
# logger.info(f"[Webhook] Docker library not available, using subprocess...")
|
||||||
|
#
|
||||||
# Restart backend container
|
# # Try /usr/bin/docker or docker in PATH
|
||||||
logger.info(f"[Webhook] Restarting backend container...")
|
# docker_cmd = "/usr/bin/docker"
|
||||||
backend_result = subprocess.run(
|
# import shutil
|
||||||
[docker_cmd, "restart", "igny8_backend"],
|
# if not os.path.exists(docker_cmd):
|
||||||
capture_output=True,
|
# docker_cmd = shutil.which("docker") or "docker"
|
||||||
text=True,
|
#
|
||||||
timeout=30
|
# # Restart backend container
|
||||||
)
|
# logger.info(f"[Webhook] Restarting backend container...")
|
||||||
|
# backend_result = subprocess.run(
|
||||||
if backend_result.returncode != 0:
|
# [docker_cmd, "restart", "igny8_backend"],
|
||||||
raise Exception(f"Backend restart failed: {backend_result.stderr}")
|
# capture_output=True,
|
||||||
logger.info(f"[Webhook] Backend container restarted successfully")
|
# text=True,
|
||||||
|
# timeout=30
|
||||||
# Restart frontend container
|
# )
|
||||||
logger.info(f"[Webhook] Restarting frontend container...")
|
#
|
||||||
frontend_result = subprocess.run(
|
# if backend_result.returncode != 0:
|
||||||
[docker_cmd, "restart", "igny8_frontend"],
|
# raise Exception(f"Backend restart failed: {backend_result.stderr}")
|
||||||
capture_output=True,
|
# logger.info(f"[Webhook] Backend container restarted successfully")
|
||||||
text=True,
|
#
|
||||||
timeout=30
|
# # Restart frontend container
|
||||||
)
|
# logger.info(f"[Webhook] Restarting frontend container...")
|
||||||
|
# frontend_result = subprocess.run(
|
||||||
if frontend_result.returncode != 0:
|
# [docker_cmd, "restart", "igny8_frontend"],
|
||||||
raise Exception(f"Frontend restart failed: {frontend_result.stderr}")
|
# capture_output=True,
|
||||||
logger.info(f"[Webhook] Frontend container restarted successfully")
|
# text=True,
|
||||||
|
# timeout=30
|
||||||
deployment_success = True
|
# )
|
||||||
|
#
|
||||||
logger.info(f"[Webhook] Deployment completed: containers restarted")
|
# if frontend_result.returncode != 0:
|
||||||
|
# raise Exception(f"Frontend restart failed: {frontend_result.stderr}")
|
||||||
except subprocess.TimeoutExpired as e:
|
# logger.info(f"[Webhook] Frontend container restarted successfully")
|
||||||
deployment_error = f"Deployment timeout: {str(e)}"
|
#
|
||||||
logger.error(f"[Webhook] {deployment_error}")
|
# deployment_success = True
|
||||||
except Exception as deploy_error:
|
#
|
||||||
deployment_error = str(deploy_error)
|
# logger.info(f"[Webhook] Deployment completed: containers restarted")
|
||||||
logger.error(f"[Webhook] Deployment error: {deploy_error}", exc_info=True)
|
#
|
||||||
|
# except subprocess.TimeoutExpired as e:
|
||||||
|
# deployment_error = f"Deployment timeout: {str(e)}"
|
||||||
|
# logger.error(f"[Webhook] {deployment_error}")
|
||||||
|
# except Exception as deploy_error:
|
||||||
|
# deployment_error = str(deploy_error)
|
||||||
|
# logger.error(f"[Webhook] Deployment error: {deploy_error}", exc_info=True)
|
||||||
|
|
||||||
return success_response(
|
return success_response(
|
||||||
data={
|
data={
|
||||||
|
|||||||
@@ -197,6 +197,12 @@ export default defineConfig(({ mode, command }) => {
|
|||||||
'**/build/**',
|
'**/build/**',
|
||||||
'**/.vscode/**',
|
'**/.vscode/**',
|
||||||
'**/.idea/**',
|
'**/.idea/**',
|
||||||
|
'**/Dockerfile*', // Ignore all Dockerfiles
|
||||||
|
'**/Caddyfile*', // Ignore Caddyfiles
|
||||||
|
'**/*.md', // Ignore markdown files
|
||||||
|
'**/container_startup.sh', // Ignore startup script
|
||||||
|
'**/.dockerignore',
|
||||||
|
'**/.gitignore',
|
||||||
],
|
],
|
||||||
interval: 1000, // Poll every 1 second (default is 100ms)
|
interval: 1000, // Poll every 1 second (default is 100ms)
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user