v2.0.0-alpha1
Pre-release
Pre-release
github-actions
released this
24 May 22:37
·
51 commits
to main
since this release
BREAKING CHANGES
- Uncompressed archives in the tars attribute is no longer compressed when creating the image, this might make images bigger compared to 1.x. Use pkg_tar#compression or tar#compress attribute to compress the layers beforehand.
- Digests of images created 1.x rules_oci will not match 2.x rules_oci, as we are no longer using crane to create the images. However, images should stay the same semantically.
- Default output of
oci_tarball
is no longer a tarball, use afilegroup
target to get the tarball. See #548 - Bazel 5 is no longer supported.
CHANGES
- OCIImage action no longer spins an ephemeral registry instance to mutate images locally, making it slightly faster.
- oci_image now supports zstd compression
Using bzlmod with Bazel 6 or later:
-
Add
common --enable_bzlmod
to.bazelrc
. -
Add to your
MODULE.bazel
file:
bazel_dep(name = "rules_oci", version = "2.0.0-alpha1")
# For testing, we also recommend https://registry.bazel.build/modules/container_structure_test
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
# Declare external images you need to pull, for example:
oci.pull(
name = "distroless_base",
# 'latest' is not reproducible, but it's convenient.
# During the build we print a WARNING message that includes recommended 'digest' and 'platforms'
# values which you can use here in place of 'tag' to pin for reproducibility.
tag = "latest",
image = "gcr.io/distroless/base",
platforms = ["linux/amd64"],
)
# For each oci.pull call, repeat the "name" here to expose them as dependencies.
use_repo(oci, "distroless_base")
Using WORKSPACE:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_oci",
sha256 = "0d8c189119f175cc51e69e26e0cf75a493716bce7de9f03c77d67ea8cc8ec5db",
strip_prefix = "rules_oci-2.0.0-alpha1",
url = "https://github.com/bazel-contrib/rules_oci/releases/download/v2.0.0-alpha1/rules_oci-v2.0.0-alpha1.tar.gz",
)
load("@rules_oci//oci:dependencies.bzl", "rules_oci_dependencies")
rules_oci_dependencies()
load("@rules_oci//oci:repositories.bzl", "oci_register_toolchains")
oci_register_toolchains(name = "oci")
# You can pull your base images using oci_pull like this:
load("@rules_oci//oci:pull.bzl", "oci_pull")
oci_pull(
name = "distroless_base",
digest = "sha256:ccaef5ee2f1850270d453fdf700a5392534f8d1a8ca2acda391fbb6a06b81c86",
image = "gcr.io/distroless/base",
platforms = [
"linux/amd64",
"linux/arm64",
],
)
What's Changed
- docs: simplify use of expand_template by @alexeagle in #534
- chore: upgrade rules_go and gazelle by @thesayyn in #541
- ci: only test with bazel 6, 7 by @thesayyn in #533
- Add a minimal c++ example in doc by @rygx in #516
- [docs] Add missing name to push examples by @ptxmac in #513
- feat: add nvcr.io to _WWW_AUTH by @nobu-k in #511
- fix: Add quay back to authn config by @ankit-agarwal1999 in #543
- docs: recommend rules_distroless by @thesayyn in #546
- refactor: remove yq dependency by @thesayyn in #386
- refactor: use hermetic tar by @alexeagle in #385
- Add
toolchain
param to the affected actions by @kotlaja in #341 - Pass headers to Bazel downloader where available by @mortenmj in #528
- feat: don't produce big tar file as default output of oci_tarball by @alexeagle in #548
- refactor: remove registry references by @thesayyn in #551
- chore: update deps and bazel by @thesayyn in #553
- refactor: registryless oci_image by @thesayyn in #550
- feat: implement out-of-band descriptor calculation by @thesayyn in #558
- feat: implement tars symlinks by @thesayyn in #559
- feat: support symlinking blobs from base by @thesayyn in #560
- fix: make oci_image fully hermetic by @thesayyn in #569
- fix: canonicalize missing components by @thesayyn in #567
- fix: duplicate tar copying by @thesayyn in #576
- Add jq as dependency required for oci_push by @mering in #589
New Contributors
- @rygx made their first contribution in #516
- @ptxmac made their first contribution in #513
- @nobu-k made their first contribution in #511
- @ankit-agarwal1999 made their first contribution in #543
- @kotlaja made their first contribution in #341
- @mering made their first contribution in #589
Full Changelog: v1.7.5...v2.0.0-alpha1