FROM git.abutili.net/images/base:latest

USER root

ARG VERSION=dev
ARG VCS_REF=unknown
ARG BUILD_DATE=unknown
ARG NODE_VERSION=24.14.1

LABEL org.opencontainers.image.title="act-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/act-base"

# install system deps and docker cli
RUN apt-get update && apt-get install -y --no-install-recommends \
     jq xz-utils git openssh-client ca-certificates curl gnupg \
   && mkdir -p /etc/apt/keyrings \
   && . /etc/os-release \
   && curl -fsSL "https://download.docker.com/linux/${ID}/gpg" | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
   && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
   && apt-get update && apt-get install -y --no-install-recommends \
     docker-ce-cli docker-buildx-plugin docker-compose-plugin \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/*

RUN set -eux; \
  ARCH="x64"; \
  curl -fsSLO "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz"; \
  tar -xJf "node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" -C /usr/local --strip-components=1; \
  rm "node-v${NODE_VERSION}-linux-${ARCH}.tar.xz"; \
  node --version; npm --version

# install app

# Switch back to the runner user defined in the base image
USER runner
