# ── Stage 1 : compilation Tippecanoe (non disponible dans bookworm) ────────
FROM debian:bookworm-slim AS tippecanoe-builder

RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    libsqlite3-dev \
    zlib1g-dev \
    git \
    ca-certificates \
    && git clone --depth=1 https://github.com/felt/tippecanoe.git /tmp/tippecanoe \
    && make -C /tmp/tippecanoe -j$(nproc) \
    && strip /tmp/tippecanoe/tippecanoe

# ── Stage 2 : image finale ─────────────────────────────────────────────────
FROM dunglas/frankenphp:latest-php8.3

# Binaire Tippecanoe issu du stage de compilation
COPY --from=tippecanoe-builder /tmp/tippecanoe/tippecanoe /usr/local/bin/tippecanoe

# Dépendances système (GDAL pour vectorisation satellite)
RUN apt-get update && apt-get install -y \
    libpq-dev \
    libzip-dev \
    unzip \
    git \
    gdal-bin \
    python3-gdal \
    && rm -rf /var/lib/apt/lists/*

# Extensions PHP
RUN install-php-extensions \
    pdo_pgsql \
    pgsql \
    redis \
    zip \
    intl \
    opcache \
    apcu

# Composer (utilisé par le hook post-receive dans le container)
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /app

COPY docker/php/Caddyfile /etc/caddy/Caddyfile

# Le code source et vendor/ sont injectés par volume mount (./backend:/app)
# Le cache warmup nécessite .env.local → fait au démarrage, pas au build
COPY docker/php/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

ENTRYPOINT ["entrypoint.sh"]
