017a590220
- nginx: asset extensions use try_files $uri =404 so a missing file (e.g. config/ice-servers.js) no longer serves index.html with the wrong content type - add config/ice-servers.prod.js (public STUN, no secrets); Dockerfile copies it to the git-ignored config/ice-servers.js so the operator-override path exists
22 lines
906 B
Docker
22 lines
906 B
Docker
# SecureBit.chat is a static PWA (no backend). The committed build artifacts in
|
|
# dist/ are served as-is by nginx — matching the project's release workflow,
|
|
# where dist/ is rebuilt and committed for every release.
|
|
FROM nginx:1.27-alpine
|
|
|
|
# Replace the default nginx config with our static-serving config.
|
|
COPY deploy/nginx.conf /etc/nginx/nginx.conf
|
|
|
|
# Serve the repository (src/, assets/, libs/, dist/, config/, logo/, sw.js, ...).
|
|
COPY . /usr/share/nginx/html
|
|
|
|
# config/ice-servers.js is git-ignored (it can hold operator TURN credentials),
|
|
# so it is absent from the build context. Provide the public-STUN production
|
|
# override so the operator-override path is populated and nothing 404s.
|
|
RUN cp /usr/share/nginx/html/config/ice-servers.prod.js \
|
|
/usr/share/nginx/html/config/ice-servers.js
|
|
|
|
# Fly.io health checks and routing target this port.
|
|
EXPOSE 8080
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|