act-runners/kubectl: image revision
act-fatboy.yml / build-container-image (push) Successful in 1m44s
act-runner-fatboy-deploy.yml / build-container-image (push) Successful in 18s
act-runner-kubectl.yml / build-container-image (push) Successful in 25s

This commit is contained in:
Márcio Fernandes
2026-09-03 23:45:01 +01:00
parent d399d6118a
commit 2344564ed4
6 changed files with 167 additions and 13 deletions
+1
View File
@@ -0,0 +1 @@
.env
+59
View File
@@ -0,0 +1,59 @@
ARG ACT_RUNNER_VERSION=3.0.2
# STAGE 1 — BUILDER
FROM alpine:3.20 AS builder
ARG ACT_RUNNER_VERSION
RUN apk add --no-cache curl unzip bash
# Kubectl
RUN curl -Lo /tmp/kubectl \
"https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" \
&& chmod +x /tmp/kubectl
ARG ACT_RUNNER_VERSION
# ACT Runner
RUN curl -sSLO "https://dl.gitea.com/gitea-runner/${ACT_RUNNER_VERSION}/gitea-runner-${ACT_RUNNER_VERSION}-linux-amd64" \
&& curl -sSLO "https://dl.gitea.com/gitea-runner/${ACT_RUNNER_VERSION}/gitea-runner-${ACT_RUNNER_VERSION}-linux-amd64.sha256" \
&& sed -i '/found/d' "gitea-runner-${ACT_RUNNER_VERSION}-linux-amd64.sha256" \
&& sha256sum -c "gitea-runner-${ACT_RUNNER_VERSION}-linux-amd64.sha256" \
&& install -m 0755 "gitea-runner-${ACT_RUNNER_VERSION}-linux-amd64" /tmp/gitea-runner
# --------------------------------------------------------------------
# STAGE 2 — FINAL IMAGE
# --------------------------------------------------------------------
FROM alpine:3.20
COPY --from=builder /tmp/kubectl /usr/local/bin/kubectl
COPY --from=builder /tmp/gitea-runner /usr/local/bin/act_runner
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
RUN addgroup -g 1000 runner \
&& adduser -D -u 1000 -G runner -s /bin/bash runner \
&& mkdir -p /home/runner \
&& chown -R runner:runner /home/runner
RUN mkdir /etc/act_runner \
&& chown -R runner:runner /etc/act_runner
VOLUME /home/runner/data
ENV GITEA_RUNNER_NAME="kubectl-mini" \
GITEA_RUNNER_CONFIG_FILE="/etc/act_runner/config.yaml" \
GITEA_RUNNER_EXEC_WORKDIR="/home/runner/workspace" \
GITEA_RUNNER_EPHEMERAL="1"\
GITEA_RUNNER_LABELS="linux,alpine,kubectl"
USER runner
RUN mkdir /home/runner/workspace && mkdir /home/runner/data
WORKDIR /home/runner
ENTRYPOINT ["/entrypoint.sh"]
@@ -0,0 +1,30 @@
services:
act-runner:
build:
context: .
dockerfile: Dockerfile
image: act-runners/kubectl:dev
container_name: act-runner-kubectl
restart: unless-stopped
configs:
- source: runner_config
target: "etc/act_runner/config.yaml"
environment:
GITEA_INSTANCE_URL: "${GITEA_INSTANCE_URL}"
GITEA_RUNNER_REGISTRATION_TOKEN: "${GITEA_RUNNER_REGISTRATION_TOKEN}"
volumes:
act-runner-config:
configs:
runner_config:
content: |
log:
level: info
runner:
capacity: 1
labels:
- linux
- kubectl
cache:
enabled: false
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
if [ ! -f "$GITEA_RUNNER_CONFIG_FILE" ]; then
echo "ERROR: Config file not found at $GITEA_RUNNER_CONFIG_FILE"
exit 1
fi
cd /home/runner/data
if [ ! -f ".runner" ]; then
echo "Registering runner..."
act_runner register \
-c "$GITEA_RUNNER_CONFIG_FILE" \
--instance "$GITEA_INSTANCE_URL" \
--token "$GITEA_RUNNER_REGISTRATION_TOKEN" \
--name "$GITEA_RUNNER_NAME" \
--labels "$GITEA_RUNNER_LABELS"
fi
echo "Starting runner..."
exec act_runner daemon \
-c "$GITEA_RUNNER_CONFIG_FILE"