79 lines
1.7 KiB
Docker
79 lines
1.7 KiB
Docker
FROM ubuntu:24.04
|
|
|
|
LABEL maintainer="homelab"
|
|
LABEL description="Ansible Act Runner - Custom Image"
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV NODE_VERSION=20
|
|
ENV ANSIBLE_FORCE_COLOR=1
|
|
ENV PIP_NO_CACHE_DIR=1
|
|
|
|
ARG ACT_RUNNER_VERSION=0.2.11
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl \
|
|
wget \
|
|
git \
|
|
ca-certificates \
|
|
gnupg \
|
|
unzip \
|
|
jq \
|
|
rsync \
|
|
openssh-client \
|
|
sshpass \
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
python3-dev \
|
|
smbclient \
|
|
krb5-user \
|
|
libkrb5-dev \
|
|
python3-kerberos \
|
|
dnsutils \
|
|
build-essential \
|
|
libssl-dev \
|
|
libffi-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Node.js 20 LTS
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - \
|
|
&& apt-get install -y --no-install-recommends nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# act_runner binary
|
|
RUN curl -fsSL \
|
|
https://gitea.com/gitea/act_runner/releases/download/v${ACT_RUNNER_VERSION}/act_runner-${ACT_RUNNER_VERSION}-linux-amd64 \
|
|
-o /usr/local/bin/act_runner \
|
|
&& chmod +x /usr/local/bin/act_runner
|
|
|
|
# Ansible + pip packages
|
|
RUN python3 -m pip install --break-system-packages \
|
|
ansible-core \
|
|
ansible \
|
|
jmespath \
|
|
netaddr \
|
|
passlib \
|
|
cryptography \
|
|
pywinrm \
|
|
requests \
|
|
boto3
|
|
|
|
# Ansible Collections
|
|
RUN ansible-galaxy collection install \
|
|
community.general \
|
|
community.crypto \
|
|
ansible.posix \
|
|
kubernetes.core \
|
|
community.windows \
|
|
microsoft.ad
|
|
|
|
RUN useradd -m -s /bin/bash runner
|
|
|
|
WORKDIR /data
|
|
|
|
# Smoke tests
|
|
RUN node --version \
|
|
&& python3 --version \
|
|
&& ansible --version \
|
|
&& act_runner --version
|