Docker/OCI
Publish container images to registries using Universal Release.
Detectionβ
Automatically detected when Dockerfile exists.
Configurationβ
ecosystems:
docker:
enabled: true
registries:
- ghcr.io/org/image
- docker.io/org/image
- registry.company.com/image
validation:
build: true
scan: true
platforms:
- linux/amd64
- linux/arm64
Credentialsβ
Store registry credentials:
# GitHub Container Registry
release secrets set GITHUB_TOKEN
# Docker Hub
release secrets set DOCKER_TOKEN
# Custom registry
release secrets set CUSTOM_REGISTRY_TOKEN
Publishingβ
# Publish to all configured registries
release publish --ecosystem docker
# Dry run (build without push)
release publish --ecosystem docker --dry-run
# Specific tag
release publish --ecosystem docker --tag latest
Multi-Registry Publishingβ
Universal Release publishes to all configured registries:
ecosystems:
docker:
registries:
- ghcr.io/myorg/myapp
- docker.io/myorg/myapp
This publishes to both GHCR and Docker Hub automatically.
Multi-Platform Buildsβ
Build for multiple architectures:
ecosystems:
docker:
platforms:
- linux/amd64
- linux/arm64
- linux/arm/v7
Uses docker buildx internally.
Validationβ
Universal Release validates:
- β
Dockerfileexists - β Image builds successfully
- β Security scan passes (if enabled)
- β Registry credentials are valid
Rollbackβ
Docker/OCI doesn't support native rollback. You must:
- Untag the version
- Re-push previous version
- Update dependent systems
Best Practicesβ
Use Multi-Stage Buildsβ
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json bun.lockb ./
RUN bun install
COPY . .
RUN bun run build
FROM node:20-alpine
WORKDIR /app
COPY /app/dist ./dist
CMD ["node", "dist/index.js"]
Tag Strategyβ
Universal Release creates multiple tags:
1.2.3- Exact version1.2- Minor version1- Major versionlatest- Latest stable
Version Managementβ
Version is typically managed via Git tags:
# Tag the release
release version --bump minor
# Publish with that version
release publish --ecosystem docker
Security Scanningβ
Enable security scanning:
ecosystems:
docker:
validation:
scan: true
scanTool: trivy # or grype, snyk
Next Stepsβ
- Version Management - Version strategies
- Configuration - Advanced setup