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 runner base keeps its old comment, so the pushed base image still matches its folder1# 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 runner base keeps its old comment, so the pushed base image still matches its folder10#
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 runner base keeps its old comment, so the pushed base image still matches its folder14# -e G1T_RUNNER_URL=https://g1t.sh -e G1T_RUNNER_TOKEN=g1trt_… \
The runner's image is g1t.sh/flagon-io/g1t-runner, on g1t's own registry, public15# g1t.sh/flagon-io/g1t-runner
The runner base keeps its old comment, so the pushed base image still matches its folder16#
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 runner base keeps its old comment, so the pushed base image still matches its folder22# 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 runner base keeps its old comment, so the pushed base image still matches its folder29
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 runner base keeps its old comment, so the pushed base image still matches its folder33 && 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 runner base keeps its old comment, so the pushed base image still matches its folder38COPY --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 runner base keeps its old comment, so the pushed base image still matches its folder43VOLUME /data
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r944ENTRYPOINT ["docker-init", "--", "g1t-runner"]
The runner base keeps its old comment, so the pushed base image still matches its folder45CMD ["register-and-run"]

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