Package Docker images

Fission can package both server-rendered apps and static sites as Docker images. Use this when your deployment platform expects containers or when you want the same release artifact to run locally, in staging, and in production.

1. Add Docker package settings

[package.docker]
port = 8080
tags = ["ghcr.io/example/my-app:1.0.0", "ghcr.io/example/my-app:latest"]
For static sites, you can choose the Rust server adapter used inside the image:
[package.docker]
adapter = "axum"
port = 8080
tags = ["ghcr.io/example/my-docs:1.0.0"]
adapter accepts axum or actix. Server-rendered apps do not use this field because the app binary itself is the server.

2. Run readiness

fission readiness package --project-dir . --target server --format docker-image
Readiness checks that Docker and Cargo are available, that the target exists in fission.toml, and that server apps have [server].entry configured.

3. Package the image

Server app:
fission package --project-dir . --target server --format docker-image --release
Static site:
fission package --project-dir . --target site --format docker-image --release
By default, Fission runs docker build and applies the configured tags. Set build = false if CI should build the generated context itself.

4. Publish to a registry

[distribution.docker_registry.production]
tags = ["ghcr.io/example/my-app:1.0.0", "ghcr.io/example/my-app:latest"]
docker login ghcr.io
fission publish \
  --project-dir . \
  --provider docker-registry \
  --artifact target/fission/release/server/docker-image/artifact-manifest.json \
  --site production
Fission tags and pushes through the Docker CLI. The release receipt records the pushed tags and points back at the artifact manifest.
Fission
A cross-platform, GPU-accelerated user interface framework for Rust. MIT licensed.
Copyright (c) 2026 Fission
Ready to use today. Widget APIs are expected to remain stable; some runtime and shell APIs may change before 1.0.0.
main - v0.1.0 alpha