feat: Add Docker build & push to Woodpecker CI pipeline
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful

- Add docker-build-api, docker-build-web, docker-build-postgres steps
- Images pushed to reg.diversecanvas.com/mosaic/* on main/develop
- Create docker-compose.prod.yml for production deployments
- Add .env.prod.example with production configuration

Requires Harbor secrets in Woodpecker:
- harbor_username
- harbor_password

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-01 01:50:02 -06:00
parent 9246f56687
commit 4b943fb997
3 changed files with 318 additions and 0 deletions

View File

@@ -78,3 +78,76 @@ steps:
- typecheck # Only block on critical checks
- security-audit
- prisma-generate
# ======================
# Docker Build & Push (main/develop only)
# ======================
# Requires secrets: harbor_username, harbor_password
docker-build-api:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: reg.diversecanvas.com
repo: reg.diversecanvas.com/mosaic/api
dockerfile: apps/api/Dockerfile
context: .
platforms:
- linux/amd64
tags:
- "${CI_COMMIT_SHA:0:8}"
- latest
username:
from_secret: harbor_username
password:
from_secret: harbor_password
when:
- branch: [main, develop]
event: push
depends_on:
- build
docker-build-web:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: reg.diversecanvas.com
repo: reg.diversecanvas.com/mosaic/web
dockerfile: apps/web/Dockerfile
context: .
platforms:
- linux/amd64
build_args:
- NEXT_PUBLIC_API_URL=https://api.mosaicstack.dev
tags:
- "${CI_COMMIT_SHA:0:8}"
- latest
username:
from_secret: harbor_username
password:
from_secret: harbor_password
when:
- branch: [main, develop]
event: push
depends_on:
- build
docker-build-postgres:
image: woodpeckerci/plugin-docker-buildx
settings:
registry: reg.diversecanvas.com
repo: reg.diversecanvas.com/mosaic/postgres
dockerfile: docker/postgres/Dockerfile
context: docker/postgres
platforms:
- linux/amd64
tags:
- "${CI_COMMIT_SHA:0:8}"
- latest
username:
from_secret: harbor_username
password:
from_secret: harbor_password
when:
- branch: [main, develop]
event: push
depends_on:
- build