linux/amd64 and linux/arm64.
Available images
Tag strategy
Every release tag (v1.0.19) produces the following tags automatically:
Variants:
- Default (
comisai/comis:latest) —node:22-bookwormbase. Includes extra system packages useful for debugging in production. - Slim (
comisai/comis:latest-slim) —node:22-bookworm-slimbase. Smaller image with a reduced attack surface. Recommended for most deployments.
Pulling images
.env file:
Automated releases via GitHub Actions
The workflow.github/workflows/dockerhub-release.yml runs on every v* tag
push. It builds multi-arch images for both linux/amd64 and linux/arm64 using
per-platform runners that merge into a single manifest — no QEMU emulation for
the daemon, which keeps build times fast.
Workflow structure
build job compiles both the default and slim variants. Because the two
variants share the same build stage layers, the second variant uses the cached
layers and completes near-instantly.
Required GitHub secrets
Add these two secrets at Settings → Secrets and variables → Actions:
To create an access token: Docker Hub → Account Settings → Personal access
tokens → Generate new token.
Triggering a release
Pushing av* tag fires the Docker Hub workflow alongside release.yml
(GitHub Release) and npm-publish.yml (npm packages) in parallel:
Caching
Build layers are cached in GitHub Actions cache (type=gha) scoped by
platform and variant:
Subsequent releases reuse cached dependency and build layers, cutting build
time significantly after the first run.
Manual publishing
To build and push manually from the repository root:docker buildx):
Related pages
Docker Operations
Production Dockerfile details, Compose services, and security hardening.
Install with Docker
Quick-start setup using the automated setup script.
