FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm install COPY . . ARG EXPO_PUBLIC_API_BASE_URL ARG EXPO_PUBLIC_AUTH_BASE_URL ARG EXPO_PUBLIC_KEYCLOAK_REALM ARG EXPO_PUBLIC_KEYCLOAK_CLIENT_ID ARG EXPO_PUBLIC_APP_ENV=production ENV EXPO_PUBLIC_API_BASE_URL=$EXPO_PUBLIC_API_BASE_URL \ EXPO_PUBLIC_AUTH_BASE_URL=$EXPO_PUBLIC_AUTH_BASE_URL \ EXPO_PUBLIC_KEYCLOAK_REALM=$EXPO_PUBLIC_KEYCLOAK_REALM \ EXPO_PUBLIC_KEYCLOAK_CLIENT_ID=$EXPO_PUBLIC_KEYCLOAK_CLIENT_ID \ EXPO_PUBLIC_APP_ENV=$EXPO_PUBLIC_APP_ENV RUN test -n "$EXPO_PUBLIC_API_BASE_URL" \ && test -n "$EXPO_PUBLIC_AUTH_BASE_URL" \ && test -n "$EXPO_PUBLIC_KEYCLOAK_REALM" \ && test -n "$EXPO_PUBLIC_KEYCLOAK_CLIENT_ID" RUN npm run build:pwa # One-shot Compose init container copies the immutable export to nginx's volume. FROM alpine:3.22 AS static COPY --from=build /app/dist /dist RUN mkdir /output ENTRYPOINT ["/bin/sh", "-ec"] CMD ["rm -rf /output/* /output/.[!.]* /output/..?* 2>/dev/null || true; cp -a /dist/. /output/"]