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.

Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure1# 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.
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure10#
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 \
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure14# -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
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure16#
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#
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure22# 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
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure29
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 \
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure33 && 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/
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure38COPY --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
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure43VOLUME /data
Merge branch 'worktree-agent-ac79a505eca749d4d' into claude/cool-newton-7nm8r944ENTRYPOINT ["docker-init", "--", "g1t-runner"]
Money in billing's messages reads to the cent, and the deploy reads migrations again after a failure45CMD ["register-and-run"]

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