treewide: replace rules_docker with rules_oci

rules_docker is not maintained anymore and recommends migration to
rules_oci

Change-Id: I089f3cf44888b3c3c0baa2c84a319b04b1a7dec4
Reviewed-on: https://review.monogon.dev/c/monogon/+/2712
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/vm/smoketest/BUILD.bazel b/metropolis/vm/smoketest/BUILD.bazel
index 66e0736..1dce6e4 100644
--- a/metropolis/vm/smoketest/BUILD.bazel
+++ b/metropolis/vm/smoketest/BUILD.bazel
@@ -1,7 +1,5 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
 load("//metropolis/node/build:def.bzl", "node_initramfs")
-load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
 
 go_library(
     name = "smoketest_lib",
@@ -28,18 +26,33 @@
         "@qemu//:qemu-x86_64-softmmu",
     ],
     embed = [":smoketest_lib"],
-    visibility = ["//visibility:public"],
+    pure = "on",
+    visibility = ["//visibility:private"],
 )
 
-static_binary_tarball(
+load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
+
+platform_transition_binary(
+    name = "smoketest_transitioned",
+    binary = ":smoketest",
+    target_platform = "//build/platforms:linux_amd64_static",
+    visibility = ["//visibility:private"],
+)
+
+load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
+
+pkg_tar(
     name = "smoketest_layer",
-    executable = ":smoketest",
+    srcs = [":smoketest_transitioned"],
+    visibility = ["//visibility:private"],
 )
 
-container_image(
-    name = "smoketest_container",
-    base = "@go_image_base//image",
-    entrypoint = ["/app/metropolis/vm/smoketest/smoketest_/smoketest"],
+load("@rules_oci//oci:defs.bzl", "oci_image")
+
+oci_image(
+    name = "smoketest_image",
+    base = "@distroless_base",
+    entrypoint = ["/smoketest"],
     tars = [":smoketest_layer"],
     visibility = ["//visibility:public"],
     workdir = "/app",