私の場合、ディレクトリ構造を作成し、mksquashfs を実行して squashfs ファイルを生成したいと考えています。
これを達成するために、bazel のパッケージングに関するドキュメントの基本的な例を変更することになりました。
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
genrule(
    name = "file1",
    outs = ["file1.txt"],
    cmd = "echo exampleText > [email protected]",
)
pkg_tar(
    name = "dir1",
    strip_prefix = ".",
    package_dir = "/usr/bin",
    srcs = [":file1"],
    mode = "0755",
)
pkg_tar(
    name = "dir2",
    strip_prefix = ".",
    package_dir = "/usr/share",
    srcs = ["//main:file2.txt", "//main:file3.txt"],
    mode = "0644",
)
pkg_tar(
    name = "pkg",
    extension = "tar.gz",
    deps = [
        ":dir1",
        ":dir2",
    ],
)
 中間の tar を必要とせずに tar またはディレクトリ構造を作成する簡単な方法があれば、それを一番の回答にします。