Files
Fabric/scripts/docker/README.md
Kayvan Sylvan 8d2fda3af9 ci: harden release pipeline; gate to upstream, migrate tokens, remove docker-on-tag
CHANGES
- Gate release and version workflows to upstream owner only.
- Switch tagging and releases to built-in GITHUB_TOKEN.
- Replace environment passing with step outputs across workflows.
- Remove docker-publish-on-tag workflow to reduce duplication and complexity.
- Add OCI description label to Docker image.
- Document GHCR multi-arch annotations for accurate package descriptions.
- Update README with new ARM binary release announcement.
- Simplify GoReleaser config by removing comments and extras.
2025-08-31 07:34:00 -07:00

1.7 KiB

Fabric Docker Image

This directory provides a simple Docker setup for running the Fabric CLI.

Build

Build the image from the repository root:

docker build -t fabric -f scripts/docker/Dockerfile .

Persisting configuration

Fabric stores its configuration in ~/.config/fabric/.env. Mount this path to keep your settings on the host.

Using a host directory

mkdir -p $HOME/.fabric-config
# Run setup to create the .env and download patterns
 docker run --rm -it -v $HOME/.fabric-config:/root/.config/fabric fabric --setup

Subsequent runs can reuse the same directory:

docker run --rm -it -v $HOME/.fabric-config:/root/.config/fabric fabric -p your-pattern

Mounting a single .env file

If you only want to persist the .env file:

# assuming .env exists in the current directory
docker run --rm -it -v $PWD/.env:/root/.config/fabric/.env fabric -p your-pattern

Running the server

Expose port 8080 to use Fabric's REST API:

docker run --rm -it -p 8080:8080 -v $HOME/.fabric-config:/root/.config/fabric fabric --serve

The API will be available at http://localhost:8080.

Multi-arch builds and GHCR packages

For multi-arch Docker builds (such as those used for GitHub Container Registry packages), the description should be set via annotations in the manifest instead of the Dockerfile LABEL. When building multi-arch images, ensure the build configuration includes:

"annotations": {
  "org.opencontainers.image.description": "A Docker image for running the Fabric CLI. See https://github.com/danielmiessler/Fabric/tree/main/scripts/docker for details."
}

This ensures that GHCR packages display the proper description.