adsb-1090/webapp/Dockerfile

72 lines
3.3 KiB
Docker

FROM php:8.4-apache
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev curl \
&& docker-php-ext-install pgsql pdo pdo_pgsql \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN a2enmod rewrite headers
RUN sed -i 's/Listen 80$/Listen 8080/' /etc/apache2/ports.conf && \
sed -i 's/<VirtualHost \*:80>/<VirtualHost *:8080>/' \
/etc/apache2/sites-enabled/000-default.conf && \
echo "ServerName localhost" >> /etc/apache2/apache2.conf
WORKDIR /var/www/html/assets
RUN curl -fsSL "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" \
-o bootstrap.min.css && \
curl -fsSL "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" \
-o bootstrap.bundle.min.js && \
curl -fsSL "https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js" \
-o chart.umd.min.js && \
curl -fsSL "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" \
-o bootstrap-icons.min.css && \
mkdir -p fonts && \
curl -fsSL "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/fonts/bootstrap-icons.woff2" \
-o fonts/bootstrap-icons.woff2 && \
curl -fsSL "https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" \
-o leaflet.js && \
curl -fsSL "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" \
-o leaflet.css && \
mkdir -p leaflet && \
curl -fsSL "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png" \
-o leaflet/marker-icon.png && \
curl -fsSL "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png" \
-o leaflet/marker-shadow.png
# ── Drapeaux nationaux (onglets Départs / Zones) ──────────────────────────────
# Source flagcdn.com : domaine public, libre d'usage sans attribution. Les
# drapeaux d'État ne sont pas couverts par le droit d'auteur.
#
# Téléchargés ici plutôt que seulement copiés depuis src/, pour qu'un build sur
# une machine neuve fonctionne sans étape préalable. Le COPY src/ qui suit
# fusionne avec ce dossier : des drapeaux déposés à la main dans
# src/assets/flags/ restent donc pris en compte et écrasent ceux-ci.
#
# Le `|| true` final est délibéré : un drapeau manquant retombe sur le
# pictogramme « pays inconnu » côté JS, ce n'est pas un motif d'échec du build.
RUN mkdir -p flags && cd flags && \
for c in fr de es it pt be nl lu ch at gb ie dk no se fi is pl cz sk hu ro \
bg gr hr si rs ba al mt cy ee lv lt ua by ru tr us ca mx br ar cl \
co pe ve cn jp kr in pk th vn sg my id ph au nz il sa qa ae kw bh \
om jo lb eg ma dz tn ly za ng ke et gh sn ci cm ga mc sm ad li im \
gg je bm ky aw bs pa cr do cu jm kz uz az ge am md me mk ir iq sy \
af bd lk np mm kh la mn tw hk mo ; do \
curl -fsSL --max-time 10 "https://flagcdn.com/24x18/${c}.png" \
-o "${c}.png" || rm -f "${c}.png" ; \
done ; \
echo "$(ls -1 *.png 2>/dev/null | wc -l) drapeau(x) embarqué(s)" ; \
true
WORKDIR /var/www/html
COPY src/ /var/www/html/
RUN sed -i 's|AllowOverride None|AllowOverride All|g' \
/etc/apache2/apache2.conf
RUN chown -R www-data:www-data /var/www/html
EXPOSE 8080
CMD ["apache2-foreground"]