Skip to main content
Comis publishes official Docker images to Docker Hub under the comisai organization. Releases are built automatically on every version tag via GitHub Actions and produce multi-arch manifests for linux/amd64 and linux/arm64.

Available images

Tag strategy

For a release tag such as vX.Y.Z, the Docker workflow produces: Variants:
  • Default (comisai/comis:latest) — node:22-bookworm base. Includes extra system packages useful for debugging in production.
  • Slim (comisai/comis:latest-slim) — node:22-bookworm-slim base. Smaller image with a reduced attack surface. Recommended for most deployments.
Pin a deployment to an exact version tag (for example, comisai/comis:X.Y.Z) rather than latest to avoid unexpected updates.

Pulling images

Use with Docker Compose by setting the image environment variables:
Or in your .env file:

Automated releases via GitHub Actions

The workflow .github/workflows/dockerhub-release.yml runs on every v* tag push after verifying that the tag exactly matches the comisai package version. 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

Each 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 a v* tag starts the Docker Hub and npm publishing workflows in parallel:
The GitHub Release is the final coordinated step in the Docker Hub workflow. It is created only after the Docker Hub default, slim, and web images are published, and the npm and GitHub Container Registry workflows for the same commit report success. A failed artifact build therefore does not create a community-facing release that points to incomplete packages.

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:
For multi-arch builds locally (requires docker buildx):

Docker Operations

Production Dockerfile details, Compose services, and security hardening.

Install with Docker

Quick-start setup using the automated setup script.