fleetnow/Dockerfile

29 lines
1.3 KiB
Docker
Raw Normal View History

# FleetNow — static single-file SPA served by nginx.
# Coolify auto-detects this Dockerfile; set the app's port to 80 and attach
# the domain (fleetnow.rahamafresh.com) in the Coolify UI — Traefik + LE are
# wired automatically from there.
FROM nginx:1.27-alpine
# Drop the stock default site, add ours.
RUN rm -f /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d/fleetnow.conf
# The whole app is one self-contained file (inline CSS/JS; MapLibre from a CDN).
COPY index.html /usr/share/nginx/html/index.html
# Runtime API-base injection: the entrypoint renders ${API_BASE} -> /env.js at
# container start (envsubst ships with the nginx image). Set API_BASE per env;
# unset falls back to the prod API, so prod/main is unaffected.
COPY env.js.template /usr/share/nginx/html/env.js.template
COPY docker-entrypoint.d/30-fleetnow-env.sh /docker-entrypoint.d/30-fleetnow-env.sh
RUN chmod +x /docker-entrypoint.d/30-fleetnow-env.sh
# Static map-overlay data (toggleable layers: gas stations, etc.), served at /layers/.
COPY layers/ /usr/share/nginx/html/layers/
EXPOSE 80
# Coolify reads this; also handy for `docker ps` health.
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -qO- http://localhost/healthz >/dev/null 2>&1 || exit 1