25 lines
619 B
Docker
25 lines
619 B
Docker
FROM node:22-slim
|
|
|
|
# Environment
|
|
ENV PORT=3000 \
|
|
KIWIX_MANAGE=/usr/bin/kiwix-manage \
|
|
KIWIX_SERVE=/usr/bin/kiwix-serve \
|
|
ARCHIVE_DIR=/data/archive \
|
|
ZIM_DIR=/data/zim
|
|
|
|
# Install dependencies
|
|
RUN apt update && apt upgrade -y && \
|
|
apt install -y --no-install-recommends \
|
|
curl docker.io kiwix-tools unzip zim-tools && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Setup app
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN mkdir -p $ARCHIVE_DIR && mkdir -p $ZIM_DIR && npm i
|
|
|
|
# Startup
|
|
EXPOSE $PORT
|
|
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD curl -f http://localhost:$PORT || exit 1
|
|
CMD ["npm", "run", "start:prod"]
|