One shape for every app that runs
Pinch or Ctrl+scroll to zoom; the text is selectable.
Source
·
TheYard
Every app TheYard runs ships the same way: build the Docker image, push it to the registry, point the web app at the tag, verify
One shape for every app that runs: a Docker image, by tag
Both web apps run a container image built from this repository's own Dockerfile and pulled from the registry as the identity. Nothing is zip-deployed or built on the server.
The one web app: both sites and The Shed
.github/workflows/deploy.yml, on every push to main
Build the image
Dockerfile, three stages
Node builds the page; the SDK
publishes TheYard and The Shed;
the runtime image holds both.
Push to the registry
crtheyardsszmnetj67bn5h2/theyard:vN
One tag per version, signed in
as the workflow (OIDC), no
password anywhere.
Point the web app at the tag
APP-THEYARD-ONE-SS: DOCKER|...:vN
The settings it holds, then the
image; App Service pulls it as
id-theyard-ss.
Verify, then the edge
origin, the three names, domains
The version, readiness, the Cosmos
DB name and The Shed's name; the
edge moves after, if it changed.
The rendering service
.github/workflows/deploy-render.yml, on every push to main
Build the image
render/Dockerfile, two stages
Node builds the renderer from
the site's own source; the
runtime is Node and that build.
Push to the registry
crtheyardsszmnetj67bn5h2/theyard-render:vN
The same version as the API,
the same registry, the same
sign-in.
Point the web app at the tag
APP-THEYARD-RENDER-SS: DOCKER|...:vN
One call: every other setting
is infra/render.bicep's.
Verify
its own /readyz
Ready as the version it was
built as, and says whether the
API has caught up.
Source: docs/images/deploy-shape.svg, drawn by docs/images/deploy-shape.mjs from the two workflows it names.