# Small, glibc-based; great compat FROM debian:trixie-slim ARG VERSION=dev ARG VCS_REF=unknown ARG BUILD_DATE=unknown LABEL org.opencontainers.image.title="base" \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${VCS_REF}" \ org.opencontainers.image.created="${BUILD_DATE}" \ org.opencontainers.image.source="https://git.abutili.net/images/base" # Set standard environment variables ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ TZ=UTC # Install essential base system dependencies # tini: Proper init process for containers # tzdata: Timezone data for applications # jq: JSON processor for scripts/healthchecks RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ bash \ tini \ tzdata \ jq \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Non-root user (safer) RUN useradd -ms /bin/bash runner USER runner WORKDIR /workspace # Default shell SHELL ["/bin/bash", "-eo", "pipefail", "-c"] # Use tini as the entrypoint to handle signal forwarding and zombie reaping ENTRYPOINT ["/usr/bin/tini", "--"]