Windows: add Docker update script
This commit is contained in:
18
tests/test_windows_update_script.py
Normal file
18
tests/test_windows_update_script.py
Normal 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
59
update_windows.bat
Normal 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
|
||||
Reference in New Issue
Block a user