# Docker para mbinv

Levanta la rama Symfony 5.4 con PHP 8.3 y Apache sin tocar el PHP 5.6 del host.

## Local

```bash
docker compose up -d --build
```

Abrir:

```text
http://127.0.0.1:8099/
http://127.0.0.1:8099/login
```

En esta rama Symfony 5.4 ya no se entra por `web/app_dev.php`. El document root correcto es
`public/`; las rutas legacy de assets se mantienen con alias:

- `/public/...` sirve archivos desde `web/public/...`
- `/logo.png`, `/header.jpg`, `/mbicon.png`, etc. sirven archivos desde `web/`

Eso evita duplicar assets y mantiene compatibilidad con las plantillas heredadas de Symfony 2.

## Prueba rapida sin Docker

En Windows/Laragon, usando PHP 8.3:

```powershell
$env:PATH='C:\laragon\bin\php\php-8.3.30-Win32-vs16-x64;'+$env:PATH
php -S 127.0.0.1:8099 -t public public/router.php
```

Abrir:

```text
http://127.0.0.1:8099/login
```

El `public/router.php` existe solo para desarrollo con el servidor embebido de PHP. En Docker y
Linux debe resolverlo Apache con los aliases del virtual host.

## Variables

Docker carga las variables desde `.env.local`.

Variables usadas por la app:

```bash
APP_ENV=dev
APP_DEBUG=1
APP_SECRET=...
DATABASE_HOST=host.docker.internal
DATABASE_PORT=3306
DATABASE_NAME=...
DATABASE_USER=...
DATABASE_PASSWORD=...
DATABASE_SSL_CA=
SESSION_COOKIE_PATH=/
SESSION_MAX_IDLE_TIME=0
MAILER_DSN=smtp://localhost:25
MAILER_FROM_ADDRESS=no-reply@test.local
```

`MBINV_PORT` se lee desde el entorno de Docker Compose y controla el puerto publicado
del host. Si no se define, usa `8099`.

En Windows, si la base de datos corre en Laragon/MySQL del host, use
`DATABASE_HOST=host.docker.internal`, no `127.0.0.1`. En Linux,
`host.docker.internal` se resuelve al host con `extra_hosts`.

## Servidor Linux con Apache existente

El host puede quedarse con PHP 5.6. El contenedor corre PHP 8.3 en el puerto 8099:

```bash
APP_ENV=prod APP_DEBUG=0 MBINV_PORT=8099 docker compose up -d --build
```

Apache del host puede publicar el contenedor:

```apache
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8099/
ProxyPassReverse / http://127.0.0.1:8099/
```

Modulos:

```bash
sudo a2enmod proxy proxy_http headers rewrite
sudo systemctl reload apache2
```
