24 lines
846 B
Docker
24 lines
846 B
Docker
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 npm run build
|
|
|
|
# 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/"]
|