Files
ubuntu-based-kiosk/library/koha/Dockerfile
T
Claude 5b79608695 Add library/: one-command Dockerized Koha home library (WIP)
Compose stack (MariaDB + Koha built from the Koha project's Debian
packages), headless bootstrap replacing the web installer, seeded item
types and LoC Z39.50 server, and an install.sh that installs Docker,
generates passwords and waits for the site. End-to-end testing in progress.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013wi3ZSot4XbUViwRFgLpRf
2026-11-06 06:13:25 +00:00

41 lines
1.8 KiB
Docker

# Koha (open-source library system) built from the Koha project's own Debian
# packages - no third-party Koha images involved.
#
# KOHA_SUITE stable (default) | oldstable | unstable
# KEEP_TRANSLATIONS no (default) trims ~650 MB of non-English .po files;
# set "yes" if you want to install other languages later
FROM debian:bookworm-slim
ARG KOHA_SUITE=stable
ARG KEEP_TRANSLATIONS=no
ENV DEBIAN_FRONTEND=noninteractive \
LANG=C.UTF-8
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl gnupg tzdata
# Optional: drop extra CA certificates (*.crt) into ./certs/ before building if
# you are behind a TLS-inspecting proxy. Empty by default.
COPY certs/ /usr/local/share/ca-certificates/extra/
RUN update-ca-certificates
RUN curl -fsSL https://debian.koha-community.org/koha/gpg.asc | gpg --dearmor -o /usr/share/keyrings/koha.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/koha.gpg] https://debian.koha-community.org/koha ${KOHA_SUITE} main bookworm" \
> /etc/apt/sources.list.d/koha.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends koha-common mariadb-client \
&& a2enmod rewrite headers proxy_http cgi deflate >/dev/null \
&& a2dissite 000-default >/dev/null 2>&1 || true \
&& if [ "$KEEP_TRANSLATIONS" != "yes" ]; then rm -rf /usr/share/koha/misc/translator/po; fi \
&& rm -rf /var/lib/apt/lists/* /usr/share/doc/*
COPY bootstrap.pl entrypoint.sh /opt/koha-init/
COPY seed/ /opt/koha-init/seed/
RUN chmod 0755 /opt/koha-init/entrypoint.sh && chmod -R a+rX /opt/koha-init
EXPOSE 80 8081
VOLUME ["/var/lib/koha"]
HEALTHCHECK --interval=30s --timeout=10s --start-period=300s --retries=5 \
CMD curl -fsS -o /dev/null http://127.0.0.1:80/ && curl -fsS -o /dev/null http://127.0.0.1:8081/ || exit 1
ENTRYPOINT ["/opt/koha-init/entrypoint.sh"]