fix docker for tauri app

This commit is contained in:
lendry
2026-06-26 17:31:05 +03:00
parent 3ab48d8537
commit c23f35e732
42 changed files with 944 additions and 34 deletions

View File

@@ -7,7 +7,6 @@ export VITE_API_URL="${VITE_API_URL:-${PUBLIC_API_URL:-http://localhost:3000}}"
export VITE_FRONTEND_URL="${VITE_FRONTEND_URL:-${PUBLIC_FRONTEND_URL:-http://localhost:3002}}"
export ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}"
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}"
export ANDROID_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-}"
if [ -z "${ANDROID_NDK_HOME:-}" ]; then
NDK_DIR="$(find "${ANDROID_HOME}/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1 || true)"
@@ -32,41 +31,21 @@ npm --workspace @lendry/tauri-app run build
cd /workspace/tauri_app
if [ ! -d "src-tauri/gen/android" ]; then
echo "==> Инициализация Android проекта Tauri"
npm run android:init -- --ci || npm run android:init
if [ -d "src-tauri/gen/android" ]; then
echo "==> Очистка предыдущего Android проекта Tauri"
rm -rf src-tauri/gen/android
fi
resolve_agp_version() {
if [ -n "${ANDROID_GRADLE_PLUGIN_VERSION}" ]; then
echo "${ANDROID_GRADLE_PLUGIN_VERSION}"
return
fi
echo "==> Инициализация Android проекта Tauri"
npm run android:init -- --ci || npm run android:init
for version in 8.10.1 8.9.3 8.8.2 8.7.3 8.6.1; do
url="https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/${version}/gradle-${version}.pom"
if curl -fsIL --connect-timeout 10 --max-time 30 "${url}" >/dev/null 2>&1; then
echo "${version}"
return
fi
done
echo "8.10.1"
}
echo "==> Проверка Android Gradle Plugin"
RESOLVED_AGP_VERSION="$(resolve_agp_version)"
echo "==> Используем Android Gradle Plugin: ${RESOLVED_AGP_VERSION}"
find src-tauri/gen/android \
-type f \
\( -name '*.gradle' -o -name '*.gradle.kts' -o -name '*.toml' -o -name 'libs.versions.toml' \) \
-print0 \
| xargs -0 sed -i -E "s/(com\\.android\\.tools\\.build:gradle:)[0-9]+\\.[0-9]+\\.[0-9]+/\\1${RESOLVED_AGP_VERSION}/g; s/(com\\.android\\.application[\"']? version[[:space:]]*=?[[:space:]]*[\"'])[0-9]+\\.[0-9]+\\.[0-9]+/\\1${RESOLVED_AGP_VERSION}/g; s/(agp[[:space:]]*=[[:space:]]*[\"'])[0-9]+\\.[0-9]+\\.[0-9]+/\\1${RESOLVED_AGP_VERSION}/g; s/(androidGradlePlugin[[:space:]]*=[[:space:]]*[\"'])[0-9]+\\.[0-9]+\\.[0-9]+/\\1${RESOLVED_AGP_VERSION}/g; s/(gradle[[:space:]]*=[[:space:]]*[\"'])[8]\\.11\\.[0-9]+/\\1${RESOLVED_AGP_VERSION}/g"
if grep -R "com.android.tools.build:gradle:8.11\\|8.11.0\\|8.11.1" -n src-tauri/gen/android >/tmp/agp-leftovers.txt 2>/dev/null; then
echo "Остались ссылки на недоступный Android Gradle Plugin:" >&2
cat /tmp/agp-leftovers.txt >&2
exit 1
if [ -n "${ANDROID_GRADLE_PLUGIN_VERSION:-}" ]; then
echo "==> Переопределение Android Gradle Plugin: ${ANDROID_GRADLE_PLUGIN_VERSION}"
find src-tauri/gen/android \
-type f \
\( -name '*.gradle' -o -name '*.gradle.kts' -o -name '*.toml' \) \
-print0 \
| xargs -0 sed -i -E "s/(com\\.android\\.tools\\.build:gradle:)[0-9]+\\.[0-9]+\\.[0-9]+/\\1${ANDROID_GRADLE_PLUGIN_VERSION}/g; s/(com\\.android\\.application[\"']? version[[:space:]]*=?[[:space:]]*[\"'])[0-9]+\\.[0-9]+\\.[0-9]+/\\1${ANDROID_GRADLE_PLUGIN_VERSION}/g"
fi
echo "==> Сборка Android APK"