|
|
@@ -1,4 +1,3 @@
|
|
|
-import os
|
|
|
import subprocess
|
|
|
import logging
|
|
|
|
|
|
@@ -77,18 +76,11 @@ def update_software():
|
|
|
|
|
|
run_command(["git", "checkout", latest_remote_tag, '--force'], f"Failed to checkout version {latest_remote_tag}")
|
|
|
|
|
|
- # Get host project directory for docker compose commands
|
|
|
- # When running inside a container, we need to use the host path for docker compose
|
|
|
- host_project_dir = os.environ.get("HOST_PROJECT_DIR")
|
|
|
- if host_project_dir:
|
|
|
- compose_cmd = ["docker", "compose", "-f", f"{host_project_dir}/docker-compose.yml"]
|
|
|
- logger.info(f"Using host project directory: {host_project_dir}")
|
|
|
- else:
|
|
|
- compose_cmd = ["docker", "compose"]
|
|
|
- logger.warning("HOST_PROJECT_DIR not set, using default docker compose")
|
|
|
-
|
|
|
- run_command(compose_cmd + ["pull"], "Failed to fetch Docker containers")
|
|
|
- run_command(compose_cmd + ["up", "-d"], "Failed to restart Docker containers")
|
|
|
+ # Pull new image and restart container using direct docker commands
|
|
|
+ # Note: docker restart reuses the existing container, so code changes (via volume mount)
|
|
|
+ # are picked up immediately. For image changes (new dependencies), manual recreation is needed.
|
|
|
+ run_command(["docker", "pull", "ghcr.io/tuanchris/dune-weaver:main"], "Failed to pull Docker image")
|
|
|
+ run_command(["docker", "restart", "dune-weaver"], "Failed to restart Docker container")
|
|
|
|
|
|
update_status = check_git_updates()
|
|
|
|