Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t.sh
45 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

The workspace cost alert compares only days that carry their value, not the days before it was kept1# syntax=docker/dockerfile:1.7
2#
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r93# The self-hosted runner's image: `g1t-runner` with a Docker Engine of its
4# own, for Sysbox. The runner starts `dockerd` inside this container and
5# runs each job in a fresh container on it, so jobs are containers inside
6# the runner's container and nothing reaches the machine: Sysbox gives the
7# container its own user namespace (its root is no one on the machine) and
8# lets it run Docker without --privileged. Never mount the machine's
9# /var/run/docker.sock: the runner refuses to start when it sees one.
The workspace cost alert compares only days that carry their value, not the days before it was kept10#
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r911# docker run -d --name g1t-runner --restart unless-stopped \
12# --runtime=sysbox-runc \
13# -v g1t-runner:/data \
The workspace cost alert compares only days that carry their value, not the days before it was kept14# -e G1T_RUNNER_URL=https://g1t.sh -e G1T_RUNNER_TOKEN=g1trt_… \
15# g1t.sh/flagon-io/g1t-runner
16#
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r917# PID 1 is docker-init (tini), which supervises g1t-runner and reaps what it
18# leaves; g1t-runner supervises dockerd (crates/runner/src/selfhosted/engine.rs).
19# git, bash and Node stay for host mode (G1T_RUNNER_NO_DOCKER=1), which is
20# deprecated.
21#
The workspace cost alert compares only days that carry their value, not the days before it was kept22# Build context: a folder holding `g1t-runner` for the image's platform,
23# the static Linux build that scripts/runner-release.mjs makes (or
24# scripts/build-runner.mjs, for x64). The release workflow builds and
25# pushes it for linux/amd64 and linux/arm64.
26
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r927# Docker's static builds: the engine, containerd, runc, the CLI, tini.
28FROM docker:28-dind AS docker
The workspace cost alert compares only days that carry their value, not the days before it was kept29
30FROM node:24-bookworm-slim
31RUN apt-get update \
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r932 && apt-get install -y --no-install-recommends git ca-certificates curl iptables procps \
The workspace cost alert compares only days that carry their value, not the days before it was kept33 && rm -rf /var/lib/apt/lists/* \
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r934 && mkdir -p /data /home/runner
35COPY --from=docker /usr/local/bin/dockerd /usr/local/bin/containerd /usr/local/bin/containerd-shim-runc-v2 \
36 /usr/local/bin/ctr /usr/local/bin/runc /usr/local/bin/docker-proxy /usr/local/bin/docker-init \
37 /usr/local/bin/docker /usr/local/bin/
The workspace cost alert compares only days that carry their value, not the days before it was kept38COPY --chmod=0755 g1t-runner /usr/local/bin/g1t-runner
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r939# Its configuration and credential live on this volume. Sysbox keeps the
40# engine's /var/lib/docker on the machine's disk for this container alone.
41ENV G1T_RUNNER_DIR=/data \
42 G1T_RUNNER_SANDBOX=nested
The workspace cost alert compares only days that carry their value, not the days before it was kept43VOLUME /data
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r944ENTRYPOINT ["docker-init", "--", "g1t-runner"]
The workspace cost alert compares only days that carry their value, not the days before it was kept45CMD ["register-and-run"]

This file's history is long; its oldest lines are credited to the oldest commit read.