mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-01-07 21:44:02 -05:00
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.
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# Fabric Docker Image
|
|
|
|
This directory provides a simple Docker setup for running the [Fabric](https://github.com/danielmiessler/fabric) CLI.
|
|
|
|
## Build
|
|
|
|
Build the image from the repository root:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```json
|
|
"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.
|