# Build-Kontext ist der Repo-Root (siehe .gitea/workflows/docker-build.yml und docker-compose.yml). FROM node:20-alpine AS build WORKDIR /app # omsorgcore-client-ts (file:./api-client-ts) hat seinen dist/-Ordner NICHT eingecheckt # (siehe omsorgapp/api-client-ts/ANLEITUNG.md) - muss hier zuerst gebaut werden, sonst schlägt # der spätere `import ... from "omsorgcore-client-ts"` in omsorgapp fehl. COPY omsorgapp/api-client-ts ./api-client-ts RUN cd api-client-ts && npm ci && npm run build COPY omsorgapp/package.json omsorgapp/package-lock.json ./ RUN npm ci COPY omsorgapp/ . # Fallback für lokale/CI-Builds ohne Container (npm run dev/build) - im Container selbst # entscheidet ausschließlich die Laufzeit-Env-Var OMSORG_CORE_URL (siehe docker-entrypoint.sh), # da dieses Image aus der Registry gezogen und per docker-compose.yml konfiguriert wird, nicht # pro Zielumgebung neu gebaut (siehe src/api/config.js). ARG VITE_OMSORG_CORE_URL=http://localhost:8080 ENV VITE_OMSORG_CORE_URL=$VITE_OMSORG_CORE_URL RUN npm run build FROM nginx:1.27-alpine AS runtime COPY --from=build /app/dist /usr/share/nginx/html COPY omsorgapp/nginx.conf /etc/nginx/conf.d/default.conf COPY omsorgapp/docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh EXPOSE 80 ENTRYPOINT ["/docker-entrypoint.sh"]