| 1 | # syntax=docker/dockerfile:1.7 |
| 2 | # |
| 3 | # The sandbox workflow jobs, g1t.page builds and g1t's own work (the merge |
| 4 | # queue, merge checks, dependency updates, backups) run in: the base image |
| 5 | # (services/runner/base/Dockerfile, everything but the runner) and the g1t |
| 6 | # runner, a static Linux binary built outside Docker by |
| 7 | # scripts/build-runner.mjs. |
| 8 | # |
| 9 | # Deploys do not build this file: scripts/deploy/registry.mjs makes the |
| 10 | # same image in the registry, adding one layer with the binary to the |
| 11 | # base's layers (the same path, mode and entrypoint; a test in |
| 12 | # scripts/deploy holds the two together), so a deploy job never pulls the |
| 13 | # base. scripts/deploy.mjs builds it with Docker for a dry run, or when |
| 14 | # that fails, passing BASE (the image recorded in services/runner/base.json) |
| 15 | # and a build context holding only the binary. |
| 16 | |
| 17 | ARG BASE |
| 18 | FROM ${BASE} |
| 19 | COPY --chmod=0755 g1t-runner /usr/local/bin/g1t-runner |
| 20 | ENTRYPOINT ["g1t-runner"] |