/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
scripts/docker/ensure_postgres_data_dir.ps1
32 строки
1 KB
MihahamYT
Telegram Bot Working
25 май 2026, 20:20
25 май 2026, 20:20
1089971
Код
Авторство
О чём код?
# Ensure bind-mounted PostgreSQL data directory is writable by postgres:15 (UID/GID 999). $ErrorActionPreference = "Stop" $Root = (Resolve-Path (Join-Path $PSScriptRoot "..\..")).Path $DataDir = if ($env:POSTGRES_DATA_DIR) { $env:POSTGRES_DATA_DIR } else { Join-Path $Root "db_data" } New-Item -ItemType Directory -Force -Path $DataDir | Out-Null $dockerArgs = @( "run", "--rm", "-u", "999:999", "-v", "${DataDir}:/var/lib/postgresql/data", "postgres:15", "sh", "-c", "touch /var/lib/postgresql/data/.konstructorium_write_test && rm -f /var/lib/postgresql/data/.konstructorium_write_test" ) $prevEap = $ErrorActionPreference $ErrorActionPreference = "Continue" & docker @dockerArgs 2>$null $ok = ($LASTEXITCODE -eq 0) $ErrorActionPreference = $prevEap if ($ok) { Write-Host "PostgreSQL data directory is writable: $DataDir" exit 0 } Write-Host "PostgreSQL data directory is not writable for container user 999:999." Write-Host "Data path: $DataDir" Write-Host "On Linux/WSL fix: sudo chown -R 999:999 `"$DataDir`"" Write-Host "Or remove db_data after compose down and re-run this script (data loss)." exit 1