Add Docker containerization, CI publish, and deploy manifests #24

Merged
mik-tf merged 2 commits from development_docker into development 2026-02-28 03:17:42 +00:00
Member

Summary

1. Dockerfile + Makefile targets

  • Multi-stage: rust:latest builder → debian:bookworm-slim runtime (~38MB image)
  • Makefile targets: docker-build, docker-run, docker-push, docker-login
  • .dockerignore excludes build artifacts, tests, CI files

2. CI container publish workflow

  • .forgejo/workflows/build-container.yml
  • Triggered on version tags (v*) and manual dispatch
  • Builds and pushes to forge.ourworld.tf/mycelium/www-migrate-mycelium

3. Docker Compose (TFGrid VM proof of concept)

  • deploy/docker-compose.yml — portal + Caddy reverse proxy with auto TLS
  • deploy/Caddyfile — simple reverse proxy config
  • deploy/.env.example — configuration reference

4. K8s manifests (devops handoff)

  • deploy/k8s/deployment.yml — with health probes and resource limits
  • deploy/k8s/service.yml — ClusterIP service
  • deploy/k8s/ingress.yml — TLS ingress with cert-manager
  • deploy/k8s/configmap.yml — network configuration

Tested locally

  • make docker-build (38MB image)
  • make docker-run (API + frontend both served)
  • curl localhost:11001/api/health{"status":"ok","chain_connected":true}

Closes #23

## Summary ### 1. Dockerfile + Makefile targets - Multi-stage: `rust:latest` builder → `debian:bookworm-slim` runtime (~38MB image) - Makefile targets: `docker-build`, `docker-run`, `docker-push`, `docker-login` - `.dockerignore` excludes build artifacts, tests, CI files ### 2. CI container publish workflow - `.forgejo/workflows/build-container.yml` - Triggered on version tags (`v*`) and manual dispatch - Builds and pushes to `forge.ourworld.tf/mycelium/www-migrate-mycelium` ### 3. Docker Compose (TFGrid VM proof of concept) - `deploy/docker-compose.yml` — portal + Caddy reverse proxy with auto TLS - `deploy/Caddyfile` — simple reverse proxy config - `deploy/.env.example` — configuration reference ### 4. K8s manifests (devops handoff) - `deploy/k8s/deployment.yml` — with health probes and resource limits - `deploy/k8s/service.yml` — ClusterIP service - `deploy/k8s/ingress.yml` — TLS ingress with cert-manager - `deploy/k8s/configmap.yml` — network configuration ## Tested locally - `make docker-build` ✅ (38MB image) - `make docker-run` ✅ (API + frontend both served) - `curl localhost:11001/api/health` → `{"status":"ok","chain_connected":true}` Closes #23
feat: add Dockerfile and Makefile docker targets
Some checks failed
Test / check (pull_request) Has been cancelled
f4b1dc3b30
Multi-stage Docker build (rust:latest → debian:bookworm-slim) producing
a ~38MB image that serves both the backend API and frontend SPA.

Closes #23

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add CI container workflow, Docker Compose, and K8s manifests
All checks were successful
Test / check (pull_request) Successful in 2m10s
11bd84fadf
- build-container.yml: tag-triggered CI to build and push Docker image
  to forge.ourworld.tf registry
- deploy/docker-compose.yml + Caddyfile: ready-to-run setup for TFGrid
  VM with automatic TLS via Caddy
- deploy/k8s/: Deployment, Service, Ingress, ConfigMap for K8s handoff
  to devops

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mik-tf changed title from WIP: Add Dockerfile and Makefile docker targets to WIP: Add Docker containerization, CI publish, and deploy manifests 2026-02-28 02:41:38 +00:00
mik-tf changed title from WIP: Add Docker containerization, CI publish, and deploy manifests to Add Docker containerization, CI publish, and deploy manifests 2026-02-28 03:17:37 +00:00
mik-tf merged commit 3fb91a85db into development 2026-02-28 03:17:42 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mycelium/www_migrate_mycelium!24
No description provided.