You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
# Multi-stage build |
|
FROM node:20-alpine AS builder |
|
WORKDIR /app |
|
COPY package*.json ./ |
|
RUN npm ci |
|
COPY . . |
|
ARG VITE_DEFAULT_RELAYS |
|
ARG VITE_ZAP_THRESHOLD |
|
ARG VITE_THREAD_TIMEOUT_DAYS |
|
ARG VITE_PWA_ENABLED |
|
ENV VITE_DEFAULT_RELAYS=${VITE_DEFAULT_RELAYS} |
|
ENV VITE_ZAP_THRESHOLD=${VITE_ZAP_THRESHOLD} |
|
ENV VITE_THREAD_TIMEOUT_DAYS=${VITE_THREAD_TIMEOUT_DAYS} |
|
ENV VITE_PWA_ENABLED=${VITE_PWA_ENABLED} |
|
RUN npm run build |
|
|
|
FROM httpd:alpine |
|
RUN apk add --no-cache gettext && \ |
|
mkdir -p /usr/local/apache2/logs && \ |
|
chown -R daemon:daemon /usr/local/apache2/logs |
|
COPY --from=builder /app/build /usr/local/apache2/htdocs/ |
|
# Ensure healthz.json exists (copy from public if not in build, or create if missing) |
|
COPY --from=builder /app/public/healthz.json /usr/local/apache2/htdocs/healthz.json |
|
COPY httpd.conf.template /usr/local/apache2/conf/httpd.conf.template |
|
COPY docker-entrypoint.sh /usr/local/bin/ |
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh |
|
ARG PORT=9876 |
|
ENV PORT=${PORT} |
|
EXPOSE ${PORT} |
|
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
|
|