FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

# ---------------------------------------------------------
# Base dependencies
# ---------------------------------------------------------
RUN apt-get update && apt-get install -y \
    tini \
    curl \
    wget \
    jq \
    bash \
    tar \
    rsync \
    rclone \
    ansible \
    openssh-client \
    iptables \
    uidmap \
    slirp4netns \
    fuse-overlayfs \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# ---------------------------------------------------------
# Install ACT Runner
# ---------------------------------------------------------
RUN curl -L https://dl.gitea.com/act_runner/0.6.0/act_runner-0.6.0-linux-amd64 \
    -o /usr/local/bin/act_runner && \
    chmod +x /usr/local/bin/act_runner

# ---------------------------------------------------------
# Install kubectl
# ---------------------------------------------------------
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" && \
    chmod +x kubectl && mv kubectl /usr/local/bin/

# ---------------------------------------------------------
# Install Helm
# ---------------------------------------------------------
RUN HELM_VERSION=$(curl -s https://api.github.com/repos/helm/helm/releases/latest | jq -r .tag_name) && \
    curl -fsSL https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz -o helm.tar.gz && \
    tar -zxvf helm.tar.gz && \
    mv linux-amd64/helm /usr/local/bin/helm && \
    rm -rf linux-amd64 helm.tar.gz

# ---------------------------------------------------------
# Install BuildKit (buildkitd + buildctl)
# ---------------------------------------------------------
ENV BUILDKIT_VERSION=v0.28.0

RUN curl -L "https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz" \
    | tar -xz -C /usr/local/bin --strip-components=1

# ---------------------------------------------------------
# Install rootlesskit (required for BuildKit rootless)
# ---------------------------------------------------------
RUN curl -L https://github.com/rootless-containers/rootlesskit/releases/download/v1.1.1/rootlesskit-x86_64.tar.gz \
    | tar -xz -C /usr/local/bin

# ---------------------------------------------------------
# Default entrypoint
# ---------------------------------------------------------
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/act_runner"]
CMD ["daemon", "--config", "/etc/act_runner/config.yaml"]