Files
radarsargasses/docker/php/Dockerfile
Gwadaking 9712cb54db feat: phase A — backup B2, healthcheck /api/status, vector tiles Tippecanoe
- A1: scripts/backup-postgres.sh — pg_dump quotidien compressé → Backblaze B2 (rclone), rétention 30j
- A2: StatusController retourne HTTP 503 + healthy/alertReason si dernière observation > 6h
- A4: Dockerfile installe tippecanoe, GenerateTilesCommand génère 5 tilesets (obs + h6/12/24/48), Caddyfile sert /tiles/* sans fallback SPA, SargassesMap.jsx passe en sources vector tiles statiques
- chore: backend/public/assets/ ajouté au .gitignore (build artifacts)
- chore: setup vitest frontend + ImpactScoreServiceTest (session précédente)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 03:40:32 -04:00

37 lines
922 B
Docker

FROM dunglas/frankenphp:latest-php8.3
# Dépendances système (GDAL pour vectorisation satellite, Tippecanoe pour vector tiles)
RUN apt-get update && apt-get install -y \
libpq-dev \
libzip-dev \
unzip \
git \
gdal-bin \
python3-gdal \
tippecanoe \
&& 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"]