47 lines
1.2 KiB
Docker
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" ]
|