Skip to main content
Version: 1.1.0

blobber push

Upload a directory to an OCI registry.

Synopsis

blobber push <directory> <reference> [flags]

Description

Uploads all files from a local directory to an OCI registry as an eStargz-compressed image layer. The directory structure is preserved.

Arguments

ArgumentRequiredDescription
directoryYesPath to the directory to upload
referenceYesOCI image reference (e.g., ghcr.io/org/repo:tag)

Flags

FlagTypeDefaultDescription
--compressionstringgzipCompression algorithm: gzip or zstd
--insecureboolfalseAllow connections without TLS
-v, --verboseboolfalseEnable debug logging

Signing Flags

FlagTypeDefaultDescription
--signboolfalseSign artifact using Sigstore
--sign-keystringPath to private key for signing (PEM format)
--sign-key-passstringPassword for encrypted private key
--fulcio-urlstringhttps://fulcio.sigstore.devFulcio CA URL for keyless signing
--rekor-urlstringhttps://rekor.sigstore.devRekor transparency log URL

Output

On success, prints the SHA256 digest of the pushed manifest:

sha256:a1b2c3d4e5f6...

Exit Codes

CodeDescription
0Success
1Error (authentication, network, invalid input)

Examples

Push a directory with default compression:

blobber push ./config ghcr.io/myorg/config:v1

Push with zstd compression:

blobber push ./data ghcr.io/myorg/data:latest --compression zstd

Push to an insecure registry:

blobber push ./files localhost:5000/test:v1 --insecure

Push with keyless signing (opens browser for OIDC):

blobber push --sign ./config ghcr.io/myorg/config:v1

Push with key-based signing:

blobber push --sign --sign-key ./private.pem ./config ghcr.io/myorg/config:v1

Push with custom Sigstore infrastructure:

blobber push --sign --fulcio-url https://fulcio.internal --rekor-url https://rekor.internal ./config ghcr.io/myorg/config:v1

Configuration

Signing options can be configured via config file or environment variables:

Config file (~/.config/blobber/config.yaml):

sign:
enabled: true
key: /path/to/private-key.pem
fulcio: https://fulcio.sigstore.dev
rekor: https://rekor.sigstore.dev

Environment variables:

VariableDescription
BLOBBER_SIGN_ENABLEDEnable signing
BLOBBER_SIGN_KEYPath to private key
BLOBBER_SIGN_PASSWORDPrivate key password
BLOBBER_SIGN_FULCIOFulcio CA URL
BLOBBER_SIGN_REKORRekor transparency log URL

See How to Configure Blobber for details.

Notes

  • Symbolic links are preserved in the archive
  • Empty directories are included
  • File permissions are preserved
  • Hidden files (dotfiles) are included
  • When --sign is used, the signature is stored as an OCI referrer artifact

See Also