Correcciones finales: Carga de entorno en webhook, rutas en entrypoint y búsqueda SQL
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
FROM debian:bullseye-slim
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
# Evitar interacciones durante instalación
|
# Evitar interacciones durante instalación
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -24,12 +24,20 @@ Aplicación web integral para la gestión automatizada de rotaciones de turnos,
|
|||||||
### Opción A: Docker Compose / Portainer
|
### Opción A: Docker Compose / Portainer
|
||||||
|
|
||||||
1. Clona el repositorio.
|
1. Clona el repositorio.
|
||||||
2. Construye la imagen:
|
2. Construye la imagen manualmente o usa el script interactivo:
|
||||||
```bash
|
```bash
|
||||||
docker build -t contenedor-ibiza .
|
./scripts/build_push.sh
|
||||||
```
|
```
|
||||||
3. Ejecuta con las variables de entorno necesarias (ver `contenedor.yaml` como ejemplo).
|
3. Ejecuta con las variables de entorno necesarias (ver `contenedor.yaml` como ejemplo).
|
||||||
|
|
||||||
|
### Actualización de Imagen (Registry Privado)
|
||||||
|
|
||||||
|
Para generar una nueva versión y subirla a tu registro (`10.10.4.3:5000`):
|
||||||
|
```bash
|
||||||
|
./scripts/build_push.sh
|
||||||
|
```
|
||||||
|
El script solicitará la versión (tag) y se encargará del build y el push automáticamente.
|
||||||
|
|
||||||
### Opción B: CasaOS / ZimaOS
|
### Opción B: CasaOS / ZimaOS
|
||||||
|
|
||||||
1. Utiliza la función de "Importar" y selecciona el archivo `contenedor.yaml`.
|
1. Utiliza la función de "Importar" y selecciona el archivo `contenedor.yaml`.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Definir ruta del archivo .env
|
# Definir ruta del archivo .env
|
||||||
ENV_FILE="/var/www/html/contenedor/.env"
|
ENV_FILE="/var/www/html/.env"
|
||||||
|
|
||||||
# Siempre regenerar el archivo .env para asegurar que las variables de entorno (YAML) tengan prioridad
|
# Siempre regenerar el archivo .env para asegurar que las variables de entorno (YAML) tengan prioridad
|
||||||
echo "Generating .env file from environment variables..."
|
echo "Generating .env file from environment variables..."
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||||
|
|
||||||
use App\Services\TelegramBot;
|
use App\Services\TelegramBot;
|
||||||
|
use App\Config\Env;
|
||||||
|
|
||||||
|
// Cargar variables de entorno
|
||||||
|
Env::load();
|
||||||
|
|
||||||
// Recibir solicitud webhook
|
// Recibir solicitud webhook
|
||||||
$input = file_get_contents('php://input');
|
$input = file_get_contents('php://input');
|
||||||
|
|||||||
72
scripts/build_push.sh
Executable file
72
scripts/build_push.sh
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Script interactivo para construir y subir imagen al Registry Privado
|
||||||
|
|
||||||
|
# Configuración
|
||||||
|
REGISTRY_URL="10.10.4.3:5000"
|
||||||
|
IMAGE_NAME="contenedor_ibiza"
|
||||||
|
|
||||||
|
# Colores
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
RED='\033[0;31m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
echo -e "${YELLOW}🚀 Iniciando proceso de Build & Push para Contenedor Ibiza${NC}"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
|
||||||
|
# 1. Solicitar Tag
|
||||||
|
read -p "🏷️ Ingresa el tag/versión para la imagen (default: latest): " TAG
|
||||||
|
TAG=${TAG:-latest}
|
||||||
|
|
||||||
|
FULL_IMAGE_NAME="$REGISTRY_URL/$IMAGE_NAME:$TAG"
|
||||||
|
LATEST_IMAGE_NAME="$REGISTRY_URL/$IMAGE_NAME:latest"
|
||||||
|
|
||||||
|
echo -e "\n${YELLOW}📝 Configuración:${NC}"
|
||||||
|
echo " - Registry: $REGISTRY_URL"
|
||||||
|
echo " - Imagen: $FULL_IMAGE_NAME"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
|
||||||
|
read -p "¿Continuar? (S/n): " CONFIRM
|
||||||
|
CONFIRM=${CONFIRM:-S}
|
||||||
|
|
||||||
|
if [[ "$CONFIRM" != "S" && "$CONFIRM" != "s" ]]; then
|
||||||
|
echo -e "${RED}❌ Cancelado por el usuario.${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Construir Imagen
|
||||||
|
echo -e "\n${GREEN}🔨 Construyendo imagen...${NC}"
|
||||||
|
# Nos aseguramos de estar en el directorio raíz del proyecto
|
||||||
|
cd "$(dirname "$0")/.." || exit
|
||||||
|
|
||||||
|
if docker build -t "$FULL_IMAGE_NAME" .; then
|
||||||
|
echo -e "${GREEN}✅ Build exitoso.${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Error en el Build.${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. Subir Imagen
|
||||||
|
echo -e "\n${GREEN}bw 📤 Subiendo imagen a $REGISTRY_URL...${NC}"
|
||||||
|
|
||||||
|
if docker push "$FULL_IMAGE_NAME"; then
|
||||||
|
echo -e "${GREEN}✅ Push exitoso: $FULL_IMAGE_NAME${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Error al subir imagen. ¿Docker tiene acceso al registry http?${NC}"
|
||||||
|
echo "Tip: Revisa /etc/docker/daemon.json para 'insecure-registries'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. Opcional: Subir también como 'latest' si se usó un tag específico
|
||||||
|
if [ "$TAG" != "latest" ]; then
|
||||||
|
read -p "¿Deseas etiquetar y subir también como ':latest'? (S/n): " UPDATE_LATEST
|
||||||
|
UPDATE_LATEST=${UPDATE_LATEST:-S}
|
||||||
|
|
||||||
|
if [[ "$UPDATE_LATEST" == "S" || "$UPDATE_LATEST" == "s" ]]; then
|
||||||
|
docker tag "$FULL_IMAGE_NAME" "$LATEST_IMAGE_NAME"
|
||||||
|
docker push "$LATEST_IMAGE_NAME"
|
||||||
|
echo -e "${GREEN}✅ Tag 'latest' actualizado.${NC}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n${GREEN}🎉 ¡Todo listo! La imagen ya está en tu registro.${NC}"
|
||||||
@@ -155,11 +155,12 @@ class Assignment extends BaseModel
|
|||||||
$sql = "SELECT a.*, u.full_name, u.username
|
$sql = "SELECT a.*, u.full_name, u.username
|
||||||
FROM assignments a
|
FROM assignments a
|
||||||
INNER JOIN users u ON a.user_id = u.id
|
INNER JOIN users u ON a.user_id = u.id
|
||||||
WHERE u.full_name LIKE :name OR u.username LIKE :name
|
WHERE u.full_name LIKE :name1 OR u.username LIKE :name2
|
||||||
ORDER BY a.start_date ASC";
|
ORDER BY a.start_date ASC";
|
||||||
|
|
||||||
$stmt = $this->db->prepare($sql);
|
$stmt = $this->db->prepare($sql);
|
||||||
$stmt->execute(['name' => "%$name%"]);
|
$term = "%$name%";
|
||||||
|
$stmt->execute(['name1' => $term, 'name2' => $term]);
|
||||||
|
|
||||||
return $stmt->fetchAll();
|
return $stmt->fetchAll();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user