Files
bridge/docs/CI-CD-DOCKER-IMAGES.md
T
zeekay ee958f516f phase2-r2: scrub bridge3 / @luxbridge/app / lux-bridge references
Sweep through configs, docs, and ignore files after the structural
collapse in the previous commit. Updates fall into three buckets:

1) Restore the Dockerfile for app/bridge/
   - app/bridge/Dockerfile: new file, Vite SPA → ghcr.io/hanzoai/spa,
     same shape as the pre-collapse legacy Dockerfile, build context
     is repo root so @luxfi/bridge (workspace:*) resolves.
   - cmd/bridge/Dockerfile: switch UI-build stage to the workspace
     build context so the new app/bridge (which depends on the
     sibling pkg/bridge package) actually installs.
   - Makefile build-ui target: drop the per-app build context for
     the same reason — context must be repo root.

2) Update workspace docs to the new layout
   - README.md: rename @luxbridge/app row → @luxbridge/lux-tenant,
     port 3000 → 3001 (the slim tenant's vite config uses 3001).
   - docs/LLM.md: drop the bridge3 row, rename app/bridge row to
     @luxbridge/lux-tenant, update dev port.
   - docs/{BRIDGE-STATUS,LOCAL-SETUP,CI-CD-DOCKER-IMAGES}.md:
     `docker build … ./app/bridge` → `… -f app/bridge/Dockerfile .`
     so docs reflect the workspace-rooted build context.
   - .github/workflows/publish.yml: drop @luxbridge/app and
     @luxbridge/app-v3 from the private-packages comment.

3) Delete AI-slop status reports + test harness
   - CI_STATUS_REPORT.md, DEPLOYMENT_STATUS.md, WORKFLOW_AUDIT.md,
     WORKFLOWS_SUMMARY.md — stale and referenced bridge3.
   - test-bridge-ui.js — top-level Puppeteer/Playwright probe of the
     deleted legacy UI; not a workspace test.
   - .dockerignore: drop the test-bridge-ui.js entry now that the
     file no longer exists.

Out of scope (untouched): pkg/bridge/src/{Bridge,config,types,mount}
and pkg/bridge/src/app/ — Phase 3 R2 is working there. The
`@luxbridge/app` mentions in those files are historical comments
explaining the prior workspace cycle, not live references.
2026-05-21 15:15:37 -07:00

2.6 KiB

CI/CD Docker Images Documentation

Overview

The Lux Bridge project uses GitHub Actions to automatically build and push Docker images to GitHub Container Registry (ghcr.io) whenever changes are pushed to the main branch.

Docker Images Built

The CI/CD pipeline builds three main Docker images:

  1. MPC Service: ghcr.io/luxfi/lux-mpc:latest
  2. Bridge Server: ghcr.io/luxfi/bridge-server:latest
  3. Bridge UI: ghcr.io/luxfi/bridge-ui:latest

Workflow Configuration

The workflow is defined in .github/workflows/build-and-push.yml and:

  • Triggers on push to main branch
  • Triggers on changes to relevant directories
  • Can be manually triggered via workflow_dispatch
  • Builds multi-platform images (linux/amd64, linux/arm64)
  • Uses GitHub's built-in GITHUB_TOKEN for authentication

Image Tags

Each image is tagged with:

  • latest - for the main branch
  • main-<sha> - specific commit on main
  • pr-<number> - for pull requests
  • Branch name - for feature branches

Using the Images

Development (compose.yml)

services:
  mpc-node-0:
    image: ghcr.io/luxfi/lux-mpc:latest
  
  bridge-server:
    image: ghcr.io/luxfi/bridge-server:latest
  
  bridge-ui:
    image: ghcr.io/luxfi/bridge-ui:latest

Local Development (compose.local.yml)

For local development without Docker images, use:

make up  # Starts infrastructure only
# Then run services locally

Manual Build and Push

To manually build and push images:

# Build all images
make build

# Push to registry (requires login)
make push

GitHub Container Registry Access

Images are public and can be pulled without authentication:

docker pull ghcr.io/luxfi/lux-mpc:latest
docker pull ghcr.io/luxfi/bridge-server:latest
docker pull ghcr.io/luxfi/bridge-ui:latest

Troubleshooting

Image Not Found

If you get "manifest unknown" errors:

  1. Check if the workflow has run successfully
  2. Verify image names match exactly
  3. Use compose.local.yml for local development

Build Failures

Common issues:

  • Missing dependencies in Dockerfile
  • Incorrect build context paths
  • Network issues during build

Local Testing

Test the build locally:

# MPC Service
docker build -f app/mpc-service/Dockerfile .

# Bridge Server
docker build -f app/server/Dockerfile app/server/

# Bridge UI (build context is repo root — pnpm workspace)
docker build -f app/bridge/Dockerfile .

Security

  • Images are scanned for vulnerabilities by GitHub
  • Use specific tags in production, not latest
  • Regularly update base images
  • Follow least-privilege principles in Dockerfiles