infra-monitoring-kuma/docker/Dockerfile

47 lines
1.2 KiB
Docker

# syntax=docker/dockerfile:1
# ===================== Create base stage =====================
ARG NODE_VERSION=lts
ARG UPTIME_KUMA_VERSION=nightly2
ARG APP_HOME=/app
FROM louislam/uptime-kuma:${UPTIME_KUMA_VERSION} AS base
ARG PORT=3001
ARG APP_HOME
ENV APP_HOME=${APP_HOME}
WORKDIR ${APP_HOME}
# ==== App specific variables
ENV UPTIME_KUMA_IS_CONTAINER=1
ARG DATA_DIR=./data/
ENV DATA_DIR=${DATA_DIR}
ENV DB_PATH=${DATA_DIR}kuma.db
# ===================== App Runner Stage =====================
FROM base AS runner
# Copy all necessary files
COPY --from=litestream/litestream:0.3.13 /usr/local/bin/litestream /usr/local/bin/litestream
# Create data directory (although this will likely be mounted too) as some services won't mount it.
RUN mkdir -p "${DATA_DIR}"
EXPOSE ${PORT}
ENV PORT=${PORT}
HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD extra/healthcheck
# Copy Litestream configuration file & startup script.
COPY etc/litestream.yml /etc/litestream.yml
COPY scripts/run.sh /scripts/run.sh
COPY scripts/db/2024-07-11-0000-dns-results.js ./db/2024-07-11-0000-dns-results.js
COPY scripts/db/knex_init_db.js ./db/knex_init_db.js
USER node
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
CMD [ "/scripts/run.sh" ]