Windows: add Docker update script

This commit is contained in:
red person
2026-06-02 14:45:32 +03:00
committed by GitHub
parent 7f97ab3032
commit 4709bb022e
2 changed files with 77 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def test_windows_update_script_uses_safe_docker_update_flow():
script = (ROOT / "update_windows.bat").read_text(encoding="utf-8")
lowered = script.lower()
assert 'pushd "%~dp0"' in lowered
assert "where git" in lowered
assert "where docker" in lowered
assert "docker compose version" in lowered
assert "git pull --ff-only" in lowered
assert "docker compose up -d --build" in lowered
assert "docker image prune -f" in lowered
assert "pause" in lowered

59
update_windows.bat Normal file
View File

@@ -0,0 +1,59 @@
@echo off
setlocal
title Update Odysseus Docker Deployment
pushd "%~dp0" >nul
echo =========================================
echo Updating Odysseus Docker deployment
echo =========================================
echo.
where git >nul 2>nul
if errorlevel 1 (
echo [!] Git was not found on PATH.
echo Install Git for Windows, then run this script again.
goto :fail
)
where docker >nul 2>nul
if errorlevel 1 (
echo [!] Docker was not found on PATH.
echo Start Docker Desktop, then run this script again.
goto :fail
)
docker compose version >nul 2>nul
if errorlevel 1 (
echo [!] Docker Compose is not available.
echo Update Docker Desktop, then run this script again.
goto :fail
)
echo [+] Pulling latest code...
git pull --ff-only
if errorlevel 1 goto :fail
echo.
echo [+] Rebuilding and restarting containers...
docker compose up -d --build
if errorlevel 1 goto :fail
echo.
echo [+] Removing dangling Docker images...
docker image prune -f
if errorlevel 1 goto :fail
echo.
echo =========================================
echo Update completed successfully.
echo =========================================
goto :done
:fail
echo.
echo Update failed. Check the message above and try again.
:done
popd >nul
pause