Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: rename oci_tarball to oci_load #636

Merged
merged 1 commit into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ docs/image_index.md linguist-generated=true
docs/image.md linguist-generated=true
docs/pull.md linguist-generated=true
docs/push.md linguist-generated=true
docs/tarball.md linguist-generated=true
docs/load.md linguist-generated=true

#################################
# Configuration for 'git archive'
Expand Down
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ docs/image*.md
docs/structure*.md
docs/pull.md
docs/push.md
docs/tarball.md
docs/load.md
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ _Need help?_ This ruleset has support provided by [Aspect Build](https://www.asp
## Comparison with rules_docker

This ruleset is not intended as a complete replacement for [rules_docker]!
Many use cases can be accomodated, and we know that many users have completely replaced rules_docker.
Many use cases can be accomodated, and we know that many users have completely replaced rules*docker.
You can find a migration guide at <https://docs.aspect.build/guides/rules_oci_migration>.
However, some other use cases such as `container_run_and_*` rules have no equivalent.
However, some other use cases such as `container_run_and*\*` rules have no equivalent.

[rules_docker] was largely unmaintained for 18 months, and as of October 2023 it has been archived.
See https://github.com/bazelbuild/rules_docker/discussions/2038.
Expand Down Expand Up @@ -78,7 +78,7 @@ Note that these examples rely on the setup code in the `/WORKSPACE` file in the

- [oci_image](docs/image.md) Build an OCI compatible container image.
- [oci_image_index](docs/image_index.md) Build a multi-architecture OCI compatible container image.
- [oci_tarball](docs/tarball.md) Creates tarball from `oci_image` that can be loaded by runtimes.
- [oci_load](docs/load.md) Loads an `oci_image` into a container daemon. Can optionally produce a loadable tarball.

### Pull and Push

Expand Down
4 changes: 2 additions & 2 deletions docs/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ stardoc_with_diff_test(
)

stardoc_with_diff_test(
name = "tarball",
bzl_library_target = "//oci/private:tarball",
name = "load",
bzl_library_target = "//oci/private:load",
)

stardoc_with_diff_test(
Expand Down
18 changes: 12 additions & 6 deletions docs/cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ in rules_docker.
## An example of packaging a simple C++ program

Using a minimal example C++ program `example.cc`:

```cpp
#include <iostream>

Expand All @@ -15,8 +16,9 @@ int main(){
```

To make a container image for this program, the `BUILD.bazel` would have something like this:

```python
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load")
load("@rules_cc//cc:defs.bzl", "cc_binary")
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")

Expand Down Expand Up @@ -47,16 +49,17 @@ oci_image(
entrypoint = ["/example_binary"],
)

# Create tarball from oci image that can be run by container runtime.
# Use with 'bazel run' to load the oci image into a container runtime.
# The image is designated using `repo_tags` attribute.
oci_tarball(
name = "image_tarball",
oci_load(
name = "image_load",
image = ":image",
repo_tags = ["example:latest"],
)
```

In `MODULE.bazel` file, be sure to add the following sections:

```python
# Pull needed base image
oci.pull(
Expand All @@ -71,17 +74,20 @@ oci.pull(
# Expose the base image
use_repo(oci, "docker_lib_ubuntu")
```

```python
# Import rules_pkg
bazel_dep(name = "rules_pkg", version = "0.10.1")
```

To make tarball, execute:
To load the image, execute:

```bash
bazel run //:image_tarball
bazel run //:image_load
```

Then to run the program with runtime, e.g., Docker:

```bash
docker run --rm example:latest
```
72 changes: 72 additions & 0 deletions docs/load.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions docs/static_content.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ And finally the build rules for our image.
**./frontend/BUILD**

```python
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load")
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
filegroup(
name = "static",
Expand All @@ -70,7 +70,7 @@ oci_image(
# entrypoint = [],
# cmd = [],
)
oci_tarball(
oci_load(
name = "frontend_tarball",
image = ":frontend_image",
repo_tags = ["ourfrontend:latest"],
Expand Down
72 changes: 0 additions & 72 deletions docs/tarball.md

This file was deleted.

8 changes: 4 additions & 4 deletions e2e/smoke/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
load("@aspect_bazel_lib//lib:testing.bzl", "assert_json_matches")
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load")

oci_image(
name = "image",
Expand All @@ -21,15 +21,15 @@ tags = [
"my/image:latest",
]

oci_tarball(
name = "tarball",
oci_load(
name = "load",
image = ":image",
repo_tags = tags,
)

filegroup(
name = "tarball.tar",
srcs = [":tarball"],
srcs = [":load"],
output_group = "tarball",
)

Expand Down
4 changes: 2 additions & 2 deletions e2e/wasm/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
load("@aspect_bazel_lib//lib:tar.bzl", "tar")
load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_filegroup")
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball")
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load")
load("@rules_rust//rust:defs.bzl", "rust_binary")

package(default_visibility = ["//visibility:public"])
Expand Down Expand Up @@ -48,7 +48,7 @@ build_test(
# then run the following;
# `bazel run :tarball``
# `docker run --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm32 --pull=never gcr.io/wasm:latest`
oci_tarball(
oci_load(
name = "tarball",
image = ":image",
repo_tags = ["gcr.io/wasm:latest"],
Expand Down
4 changes: 2 additions & 2 deletions examples/assert.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ load("@bazel_skylib//rules:write_file.bzl", "write_file")

# THIS LOAD STATEMENT DEPENDS ON setup_assertion_repos.bzl
load("@docker_configure//:defs.bzl", "TARGET_COMPATIBLE_WITH")
load("//oci:defs.bzl", "oci_tarball")
load("//oci:defs.bzl", "oci_load")

DIGEST_CMD = """
image_path="$(location {image})"
Expand Down Expand Up @@ -118,7 +118,7 @@ def assert_oci_image_command(
"assert a that a container works with the given command."

tag = "oci.local/assert/" + native.package_name().replace("/", "_") + ":latest"
oci_tarball(
oci_load(
name = name + "_tarball",
image = image,
repo_tags = [tag],
Expand Down
Loading
Loading