Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit ff90365

Browse files
committed
Fix Action
1 parent 578eaa2 commit ff90365

4 files changed

Lines changed: 87 additions & 133 deletions

File tree

Dockerfile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ WORKDIR /tmp
1313
# Copiar todos los archivos tar.gz descargados de S3
1414
COPY s3-downloads/*.tar.gz /tmp/
1515

16-
# Copiar el script de generación de configuración
17-
COPY generate-nginx-config.sh /tmp/generate-nginx-config.sh
16+
# Copiar configuración estática de nginx
17+
COPY nginx.conf /etc/nginx/conf.d/default.conf
18+
19+
# Copiar el script de configuración de base paths
20+
COPY configure-base-paths.sh /tmp/configure-base-paths.sh
1821

1922
# Dar permisos de ejecución y ejecutar el script
20-
RUN chmod +x /tmp/generate-nginx-config.sh && \
21-
/tmp/generate-nginx-config.sh && \
22-
rm /tmp/generate-nginx-config.sh
23+
RUN chmod +x /tmp/configure-base-paths.sh && \
24+
/tmp/configure-base-paths.sh && \
25+
rm /tmp/configure-base-paths.sh
2326

2427
# Exponer el puerto 80
2528
EXPOSE 80

configure-base-paths.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
set -e
3+
4+
DEFAULT_BRANCH="${DEFAULT_BRANCH:-main}"
5+
6+
echo "=== Configurando base paths para cada directorio ==="
7+
echo "DEFAULT_BRANCH: ${DEFAULT_BRANCH}"
8+
echo ""
9+
10+
# Procesar cada archivo tar.gz descargado
11+
for file in /tmp/*.tar.gz; do
12+
if [ -f "$file" ]; then
13+
filename=$(basename "$file")
14+
dirname=$(basename "$file" .tar.gz)
15+
# Eliminar el prefijo "docs-sp-" si existe
16+
branch=${dirname#docs-sp-}
17+
18+
echo "Procesando: $branch"
19+
20+
# Determinar el base path para esta rama
21+
if [ "$branch" = "${DEFAULT_BRANCH}" ]; then
22+
BASE_PATH="/"
23+
TARGET_DIR="/usr/share/nginx/html"
24+
echo " -> Base path: / (raíz - rama principal)"
25+
else
26+
BASE_PATH="/${branch}/"
27+
TARGET_DIR="/usr/share/nginx/html/${branch}"
28+
echo " -> Base path: ${BASE_PATH}"
29+
fi
30+
31+
# Crear el directorio de destino
32+
mkdir -p "${TARGET_DIR}"
33+
34+
# Descomprimir
35+
echo " -> Descomprimiendo en ${TARGET_DIR}"
36+
tar -xzf "$file" -C "${TARGET_DIR}/"
37+
38+
# Agregar/modificar el base tag en todos los archivos HTML
39+
echo " -> Configurando base path en archivos HTML"
40+
find "${TARGET_DIR}" -type f -name "*.html" | while read html_file; do
41+
# Verificar si ya existe un <base> tag
42+
if grep -q "<base" "$html_file"; then
43+
# Reemplazar el base tag existente
44+
sed -i "s|<base href=\"[^\"]*\"|<base href=\"${BASE_PATH}\"|g" "$html_file"
45+
else
46+
# Agregar base tag después de <head>
47+
sed -i "s|<head>|<head>\n <base href=\"${BASE_PATH}\">|" "$html_file"
48+
fi
49+
done
50+
51+
echo " -> ✓ Completado"
52+
echo ""
53+
fi
54+
done
55+
56+
echo "=== Estructura de directorios final ==="
57+
ls -la /usr/share/nginx/html/
58+
echo ""
59+
60+
# Limpiar los archivos comprimidos
61+
rm -f /tmp/*.tar.gz
62+
63+
echo "=== Configuración completada ==="

generate-nginx-config.sh

Lines changed: 0 additions & 113 deletions
This file was deleted.

nginx.conf

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
# Configuración para subdominios
2-
# Captura cualquier subdominio y lo mapea a su directorio correspondiente
31
server {
42
listen 80;
5-
server_name ~^(?<branch>[^.]+)\.docs1\.dev\.solopcloud\.com$;
3+
server_name localhost;
64

7-
root /usr/share/nginx/html/$branch;
5+
root /usr/share/nginx/html;
86
index index.html index.htm;
97

108
# Logs
@@ -23,24 +21,27 @@ server {
2321
access_log off;
2422
}
2523

26-
# Configuración para archivos estáticos comunes
24+
# Configuración para archivos estáticos comunes (debe ir primero para mayor prioridad)
2725
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot|json|xml|txt|pdf|map)$ {
2826
expires 1y;
2927
add_header Cache-Control "public, immutable";
3028
try_files $uri =404;
3129
}
3230

33-
# Configuración SPA: redirigir todo a index.html
31+
# Configuración para cada subdirectorio (otras ramas/tags)
32+
# Cada directorio se trata como una SPA independiente
33+
location ~ ^/([^/]+)(/|$) {
34+
set $branch_dir $1;
35+
36+
# Primero intentar servir el archivo exacto
37+
# Si no existe, intentar como directorio con index.html
38+
# Si tampoco existe, servir el index.html del directorio raíz de esa rama (para SPAs)
39+
try_files $uri $uri/ /$branch_dir/index.html =404;
40+
}
41+
42+
# Configuración para la raíz (rama principal)
43+
# Esto debe ir al final para que tenga menor prioridad
3444
location / {
3545
try_files $uri $uri/ /index.html =404;
3646
}
3747
}
38-
39-
# Configuración para el dominio principal (sin subdominio)
40-
server {
41-
listen 80 default_server;
42-
server_name docs1.dev.solopcloud.com;
43-
44-
# Redirigir a un subdominio por defecto (por ejemplo, la rama main)
45-
return 301 http://main.docs1.dev.solopcloud.com$request_uri;
46-
}

0 commit comments

Comments
 (0)