| CI builds the image, Modal serves it 5693bd5 nandi 12h ago | 1 | # `web` |
| 2 | |
| The registry it pushes to is the one it has 627b785 nandi 12h ago | 3 | FRQ_WEB_IMAGE=registry.rickub.com/nandi/frq-web:<sha> \ |
| CI builds the image, Modal serves it 5693bd5 nandi 12h ago | 4 | modal deploy .modal/web/container.py |
| 5 | |
| 6 | Defined by `container.toml`; `../_loader.py` is what reads it, and |
| 7 | its comments are the spec. |
| 8 | |
| The registry it pushes to is the one it has 627b785 nandi 12h ago | 9 | Unlike `dev`, this container builds nothing. rickub builds the image |
| 10 | -- `Dockerfile` here, two stages, the second one just the bundle and |
| 11 | a python -- and pushes it to `registry.rickub.com`; this deploys that |
| CI builds the image, Modal serves it 5693bd5 nandi 12h ago | 12 | exact tag. So the thing served is the thing that was built and |
| The registry it pushes to is the one it has 627b785 nandi 12h ago | 13 | tested, and a deploy is a pull rather than a compile. The workflow is |
| 14 | `.rickub/workflows/web.yml`. |
| CI builds the image, Modal serves it 5693bd5 nandi 12h ago | 15 | |
| 16 | `runtime = "web"`: a Function whose [run] command listens on the one |
| 17 | [network] port, fronted by a stable https URL. `modal deploy` leaves |
| 18 | it up, and deploying again replaces it in place because the app is |
| 19 | named by `[container] name`. |
| 20 | |
| The registry it pushes to is the one it has 627b785 nandi 12h ago | 21 | Two credentials live outside the repo, both one-time setup: |
| CI builds the image, Modal serves it 5693bd5 nandi 12h ago | 22 | |
| The registry it pushes to is the one it has 627b785 nandi 12h ago | 23 | * `MODAL_TOKEN_ID` / `MODAL_TOKEN_SECRET`, as rickub repository |
| 24 | secrets. The registry needs no secret of its own -- rickub |
| 25 | authenticates docker before a workflow's first step. |
| 26 | * A Modal Secret named `rickub-registry`, holding `REGISTRY_USERNAME` |
| 27 | and `REGISTRY_PASSWORD` for a rickub deploy token (Settings → |
| 28 | Packages; pull-only, and the username is any label). Modal pulls the |
| 29 | private image on every cold start rather than once at deploy time, |
| 30 | so this has to be Modal's to keep and cannot be the run's own |
| 31 | short-lived registry token. |
| 32 | |
| 33 | Making the image public instead -- its detail page, Manage, |
| 34 | visibility -- removes the need for that second one entirely, at the |
| 35 | price of anyone being able to pull the bundle. |