# Frontend image for dev and prod (single image). # Dev specifics arrive via devcontainer.json / compose env — never via this # file. DevDeps are included: `npm run dev` must work with zero steps. FROM node:22-slim WORKDIR /srv/kirche-einfach/frontend COPY package.json package-lock.json entrypoint.sh ./ RUN npm ci COPY . ./ RUN chmod +x entrypoint.sh EXPOSE 3000 # Explicit `sh`: the repo bind-mount shadows the image at runtime, and git # tracks entrypoint.sh as 100644 — relying on the exec bit breaks Windows # checkouts (and fresh Linux clones). `sh script` needs read-only. ENTRYPOINT ["sh", "./entrypoint.sh"]