diff --git a/docker/replace-urls-optimized.sh b/docker/replace-urls-optimized.sh index e5199ac..7e87618 100644 --- a/docker/replace-urls-optimized.sh +++ b/docker/replace-urls-optimized.sh @@ -40,16 +40,31 @@ replace_urls_in_app() { # Process files using xargs for better performance # Use -P 4 to process up to 4 files in parallel # This significantly speeds up processing of many files - cat "$manifest_file" | xargs -P 4 -I {} sh -c ' - file="{}" - if [ -f "$file" ]; then - sed -e "s|'"$PLACEHOLDER_API"'|'"$API_URI"'|g" \ - -e "s|'"$PLACEHOLDER_DASHBOARD"'|'"$DASHBOARD_URI"'|g" \ - -e "s|'"$PLACEHOLDER_LANDING"'|'"$LANDING_URI"'|g" \ - -e "s|'"$PLACEHOLDER_WIKI"'|'"$WIKI_URI"'|g" \ - "$file" > "${file}.tmp" && mv "${file}.tmp" "$file" + # + # IMPORTANT: The manifest contains build-time paths (e.g., /app/apps/web/.next/...) + # but we need to translate them to runtime standalone paths + # (e.g., /app/apps/web/.next/standalone/apps/web/.next/...) + cat "$manifest_file" | while IFS= read -r build_path; do + # Translate build path to runtime standalone path + # Build path format: /app/apps//.next/... + # Runtime path format: /app/apps//.next/standalone/apps//.next/... + + # Extract the relative path after /app/apps// + rel_path="${build_path#/app/apps/${app}/}" + + # Construct runtime path in standalone directory + runtime_path="$app_dir/$rel_path" + + if [ -f "$runtime_path" ]; then + sed -e "s|$PLACEHOLDER_API|$API_URI|g" \ + -e "s|$PLACEHOLDER_DASHBOARD|$DASHBOARD_URI|g" \ + -e "s|$PLACEHOLDER_LANDING|$LANDING_URI|g" \ + -e "s|$PLACEHOLDER_WIKI|$WIKI_URI|g" \ + "$runtime_path" > "${runtime_path}.tmp" && mv "${runtime_path}.tmp" "$runtime_path" + else + echo " ⚠️ Warning: File not found at runtime: $runtime_path" fi - ' + done echo " ✅ Successfully replaced URLs in $file_count files" else @@ -61,14 +76,25 @@ replace_urls_in_app() { local sitemap_manifest="$app_dir/.next/sitemap-manifest.txt" if [ -f "$sitemap_manifest" ]; then - while IFS= read -r sitemap_file; do - if [ -f "$sitemap_file" ]; then - local rel_path="${sitemap_file#$app_dir/}" + while IFS= read -r build_sitemap_path; do + # Translate build path to runtime path + # Build path format: /app/apps//public/... + # Runtime path format: /app/apps//.next/standalone/apps//public/... + + # Extract the relative path after /app/apps// + rel_path="${build_sitemap_path#/app/apps/${app}/}" + + # Construct runtime path in standalone directory + runtime_sitemap_path="$app_dir/$rel_path" + + if [ -f "$runtime_sitemap_path" ]; then sed -e "s|$PLACEHOLDER_API|$API_URI|g" \ -e "s|$PLACEHOLDER_DASHBOARD|$DASHBOARD_URI|g" \ -e "s|$PLACEHOLDER_LANDING|$LANDING_URI|g" \ -e "s|$PLACEHOLDER_WIKI|$WIKI_URI|g" \ - "$sitemap_file" > "${sitemap_file}.tmp" && mv "${sitemap_file}.tmp" "$sitemap_file" + "$runtime_sitemap_path" > "${runtime_sitemap_path}.tmp" && mv "${runtime_sitemap_path}.tmp" "$runtime_sitemap_path" + else + echo " ⚠️ Warning: Sitemap file not found at runtime: $runtime_sitemap_path" fi done < "$sitemap_manifest" else