Skip to content

Releases: bazel-contrib/rules_img

v0.3.8

20 Apr 10:45
22ee499

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.8")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "e932d3cff3b0a72f7f3589951dd599c697ec00d83dff11358fd2bda1c67c4674",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.8/rules_img-v0.3.8.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • Support layer cross mount by @prime000000 in #435
  • implement oras macros by @malt3 in #457
  • image_push: optionally read registry and repository from file by @malt3 in #461
  • image_load: tarball compatible with "docker save" and oci layout by @malt3 in #462
  • Add Bazel Credential Helper to go-containerregistry keychain by @mattyclarkson in #456
  • image_index: don't fail if two base images come from the same repo by @ma-oli in #463
  • subject and referrers support by @malt3 in #464
  • prepare 0.3.8 by @malt3 in #465

New Contributors

Full Changelog: v0.3.7...v0.3.8

v0.3.7

14 Apr 09:38
ab50c6a

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.7")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "a0d469e1bfcdc3c27dc5be8d99da12be4db3edfb7a8bdd457a8be7519572d0b8",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.7/rules_img-v0.3.7.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • fix various small linting issues by @malt3 in #449
  • feat: add purl package_metadata to pulled image repos by @malt3 in #451
  • (feat) Add support for setting the media-type on intermediate or config layers by @jeffmace in #429
  • image_manifest: Support setting artifactType by @malt3 in #455
  • fix: increase bufio.Scanner buffer to 1 MB in layer hints readers by @mortenmj in #458
  • prepare 0.3.7 by @malt3 in #460

New Contributors

Full Changelog: v0.3.6...v0.3.7

v0.3.6

03 Apr 15:01
1047bc7

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.6")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "d0849cb4828569d7ec159f8c0761ed62b60798e7943d1700d800ceea2c28108a",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.6/rules_img-v0.3.6.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

Full Changelog: v0.3.5...v0.3.6

v0.3.5

23 Mar 18:34

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.5")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "fe42ce91af0d2be21727bf229c16e88df413785a0ff532b016ff7ede2cb260ea",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.5/rules_img-v0.3.5.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • Add "scratch" and "incompatible" base image by @malt3 in #402
  • protobuf prebuilt toolchain by @malt3 in #403
  • upgrade deps by @malt3 in #404
  • do not store trees in .cas by @scaiper in #409
  • Fix image load performance when loading into remote containerd by @prime000000 in #425
  • disable tree artifact symlinks by default by @malt3 in #430
  • Add org.opencontainers.image.base.* annotations automatically by @malt3 in #432
  • update all deps by @malt3 in #431
  • image_{push,load} and multi_deploy: expose deploy_manifest by @malt3 in #436
  • image_layer: correctly handle runfiles symlinks and root_symlinks by @malt3 in #437
  • image_{push,load}, multi_deploy: Drop toolchains for runtime tools by @malt3 in #438

New Contributors

Full Changelog: v0.3.4...v0.3.5

v0.3.4

31 Jan 18:47
2e38164

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.4")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "a58f553caa5ab2d807ea2ee80f552e8d0668036922d8a66ace152d717b3b5e09",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.4/rules_img-v0.3.4.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • Nix: make dev shell build on macOS by @malt3 in #365
  • image_layer: speed up calculation of hashes when processing existing tar by @malt3 in #366
  • Fixes image manifest for arm64 images without variant by @alexnovak in #361
  • Clear Cmd when setting Entrypoint to match Docker/OCI behavior by @malt3 in #372
  • update hermetic_launcher to 0.0.4 by @malt3 in #383
  • cleanup go.sum by @malt3 in #389
  • Support username:password in gRPC URL for remote_cache by @malt3 in #385
  • improve PullInfo selection in image_index for multi-base scenarios by @malt3 in #390
  • manifest_from_oci_layout: allow "arm" architecture by @malt3 in #391
  • update BCR deps by @malt3 in #392
  • Fix handling of source directories in image_layer by @malt3 in #371
  • Bazel 8.x: test against 8.5.1 by @malt3 in #386
  • prepare 0.3.4 by @malt3 in #401

New Contributors

Full Changelog: v0.3.3...v0.3.4

v0.3.3

18 Dec 15:14
6bb719f

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.3")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "de4b3b2a8bf66358c698099ab6448cb482d77da7a9b113a090072362e676b8b0",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.3/rules_img-v0.3.3.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • Create custom launcher binary for every push, load, and deploy by @malt3 in #336
  • rename Go package "deploy" -> "deploymetadata" by @malt3 in #347
  • rename Go package "push" -> "deploy" by @malt3 in #348
  • pass deploy metadata file path via argv by @malt3 in #349
  • bazel: upgrade hermetic_launcher to 0.0.3 by @malt3 in #350
  • Add per-target prefix to elements in runfiles.root_symlinks by @malt3 in #351
  • Add podman support for image loading by @malt3 in #352
  • Add generic daemon option for custom container runtimes by @malt3 in #353
  • Update container structure test part of migration guide by @malt3 in #354
  • image_load: enable use of loader as data dependency in test by @malt3 in #356
  • Add layer hints for lazy deploy strategy to optimize data transfer by @malt3 in #357
  • prepare 0.3.3 by @malt3 in #359
  • Layer transfer statistics by @malt3 in #358

Full Changelog: v0.3.2...v0.3.3

v0.3.2

11 Dec 13:29
dbaf7f3

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.2")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "7960ca8f489464b8cb8387f168f3f2f627bbdab638f03c69a7152c1da72222c3",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.2/rules_img-v0.3.2.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • ImageManifestInfo: remove base_image field by @malt3 in #321
  • progress bar: fix more visual glitches by @malt3 in #322
  • image_layer: avoid hardlink cycles by @malt3 in #324
  • tests: add check that ensures layer invariants are intact by @malt3 in #328
  • tests: detect regression of self-hardlinks by @malt3 in #331
  • prepare 0.3.2 by @malt3 in #332

Full Changelog: v0.3.1...v0.3.2

v0.3.1

09 Dec 20:43

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.1")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "c994826cd6a3b419afafbc70add5421b84b02670ec963db88214ebf310167492",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.1/rules_img-v0.3.1.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • ci: only use RBE if credentials are available by @malt3 in #286
  • export DeployInfo provider by @rafikk in #285
  • image_manifest: provide base image in template expansion by @malt3 in #294
  • renovate: ensure Bazel lockfile is updated by @malt3 in #302
  • pull: allow downloading image without digest by @malt3 in #303
  • images.pull module extension by @malt3 in #300
  • images module extension: allow downloading blobs from multiple sources by @malt3 in #305
  • images.pull: Synchronize all missing facts in parallel by @malt3 in #306
  • ci: test against Bazel 9.0.0rc3 by @malt3 in #309
  • root module: Build with Bazel 9.0.0rc3 by @malt3 in #292
  • pull: succeed if any of the sources serve blob by @malt3 in #317
  • images.pull: support mapping repositories with friendly names by @malt3 in #315
  • deploy: add multi-writer for progress by @malt3 in #318

Full Changelog: v0.2.12...v0.3.1

v0.3.0

09 Dec 20:19
Immutable release. Only release title and notes can be modified.
48d711e

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.3.0")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "c528b2de239c78f9d374c81e50c4caa7351269cf7d4ea94bd165adad606c03a4",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.3.0/rules_img-v0.3.0.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

What's Changed

  • ci: only use RBE if credentials are available by @malt3 in #286
  • export DeployInfo provider by @rafikk in #285
  • image_manifest: provide base image in template expansion by @malt3 in #294
  • renovate: ensure Bazel lockfile is updated by @malt3 in #302
  • pull: allow downloading image without digest by @malt3 in #303
  • images.pull module extension by @malt3 in #300
  • images module extension: allow downloading blobs from multiple sources by @malt3 in #305
  • images.pull: Synchronize all missing facts in parallel by @malt3 in #306
  • ci: test against Bazel 9.0.0rc3 by @malt3 in #309
  • root module: Build with Bazel 9.0.0rc3 by @malt3 in #292
  • pull: succeed if any of the sources serve blob by @malt3 in #317
  • images.pull: support mapping repositories with friendly names by @malt3 in #315
  • deploy: add multi-writer for progress by @malt3 in #318

Full Changelog: v0.2.12...v0.3.0

v0.2.12

02 Dec 15:55

Choose a tag to compare

Using Bzlmod

Add the following to your MODULE.bazel file:

bazel_dep(name = "rules_img", version = "0.2.12")

For further instructions, see the README.

Using WORKSPACE

Add the following to your WORKSPACE.bazel file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_img",
    sha256 = "c53e0e2d9b1d58ad1dc2a9efe236fc6384fbe67e771959eb98b2a2410b0b8835",
    urls = ["https://github.com/bazel-contrib/rules_img/releases/download/v0.2.12/rules_img-v0.2.12.tar.gz"],
)

# Load dependencies
load("@rules_img//img:dependencies.bzl", "rules_img_dependencies")
rules_img_dependencies()

# Register prebuilt toolchains
load("@rules_img//img:repositories.bzl", "img_register_prebuilt_toolchains", "pull_tool_register_prebuilt_repositories")
img_register_prebuilt_toolchains()
register_toolchains("@img_toolchain//:all")

# Register prebuilt pull_tool repositories (for pull functionality)
pull_tool_register_prebuilt_repositories()

# Example: Pull a base image
load("@rules_img//img:pull.bzl", "pull")
pull(
    name = "alpine",
    digest = "sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1",
    registry = "index.docker.io",
    repository = "library/alpine",
    tag = "3.22",
)

For more examples, see the README.

Full Changelog: v0.2.11...v0.2.12