mirror of
https://github.com/rocky-linux/peridot.git
synced 2024-12-01 17:16:34 +00:00
92 lines
3.4 KiB
Python
92 lines
3.4 KiB
Python
|
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
|
||
|
load("@io_bazel_rules_docker//container:container.bzl", "container_image", "container_push", "container_layer")
|
||
|
load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")
|
||
|
|
||
|
REGISTRY_VARIANT = "aws"
|
||
|
|
||
|
def migration_tar():
|
||
|
pkg_tar(
|
||
|
name = "migrate",
|
||
|
srcs = native.glob(["*.sql"]),
|
||
|
package_dir = "/migrations",
|
||
|
)
|
||
|
|
||
|
def container(image_name, files, tars_to_layer = [], base = "//bases/bazel/go", registry = "{STABLE_OCI_REGISTRY}", repository = "{STABLE_OCI_REGISTRY_REPO}", full_img_path = None, frontend = False, server_files = [], server_entrypoint = None, architecture = None, force_normal_tags = False, disable_conditional = False):
|
||
|
container_layer(
|
||
|
name = "%s_bin" % image_name,
|
||
|
directory = "/home/app/%s" % "bundle" if frontend else "bundle",
|
||
|
files = files,
|
||
|
visibility = [":__subpackages__"],
|
||
|
)
|
||
|
|
||
|
extra_layers = []
|
||
|
if len(tars_to_layer) > 0:
|
||
|
layer_name = "%s_tar_layer" % image_name
|
||
|
container_layer(
|
||
|
name = layer_name,
|
||
|
tars = tars_to_layer,
|
||
|
visibility = [":__subpackages__"],
|
||
|
)
|
||
|
extra_layers += [layer_name]
|
||
|
|
||
|
if not architecture:
|
||
|
container_image(
|
||
|
name = "%s_image" % image_name,
|
||
|
architecture = select({
|
||
|
"//platforms:arm64": "arm64",
|
||
|
"//platforms:x86_64": "amd64",
|
||
|
"//platforms:s390x": "s390x",
|
||
|
"//platforms:ppc64le": "ppc64le",
|
||
|
}),
|
||
|
base = base,
|
||
|
layers = [":%s_bin" % image_name] + extra_layers,
|
||
|
visibility = ["//visibility:public"],
|
||
|
)
|
||
|
else:
|
||
|
container_image(
|
||
|
name = "%s_image" % image_name,
|
||
|
architecture = architecture,
|
||
|
base = base,
|
||
|
layers = [":%s_bin" % image_name] + extra_layers,
|
||
|
visibility = ["//visibility:public"],
|
||
|
)
|
||
|
|
||
|
tag = "{STABLE_BUILD_TAG}"
|
||
|
img_path = "%s/%s" % (repository, image_name)
|
||
|
if full_img_path != None:
|
||
|
img_path = full_img_path
|
||
|
|
||
|
should_use_aws_format = full_img_path == None and REGISTRY_VARIANT == "aws" and not force_normal_tags
|
||
|
if should_use_aws_format:
|
||
|
tag = "%s-{STABLE_BUILD_TAG}" % image_name
|
||
|
img_path = repository
|
||
|
|
||
|
if len(server_files) > 0:
|
||
|
nodejs_image(
|
||
|
name = "%s_image_node" %image_name,
|
||
|
entry_point = server_entrypoint,
|
||
|
data = server_files,
|
||
|
base = ":%s_image" % image_name
|
||
|
)
|
||
|
|
||
|
container_push(
|
||
|
name = "%s_container" % image_name,
|
||
|
format = "Docker",
|
||
|
image = (":%s_image_node" if server_entrypoint else ":%s_image") % image_name,
|
||
|
registry = registry,
|
||
|
repository = select({
|
||
|
"//platforms:arm64": img_path,
|
||
|
"//platforms:x86_64": img_path,
|
||
|
"//platforms:s390x": "%s/%s_s390x" % (repository, image_name),
|
||
|
"//platforms:ppc64le": "%s/%s_ppc64le" % (repository, image_name),
|
||
|
}) if not should_use_aws_format and not disable_conditional else img_path,
|
||
|
tag = select({
|
||
|
"//platforms:arm64": tag,
|
||
|
"//platforms:x86_64": tag,
|
||
|
"//platforms:s390x": "%s_s390x-{STABLE_BUILD_TAG}" % image_name,
|
||
|
"//platforms:ppc64le": "%s_ppc64le-{STABLE_BUILD_TAG}" % image_name,
|
||
|
}) if should_use_aws_format and not disable_conditional else tag,
|
||
|
visibility = ["//visibility:public"],
|
||
|
)
|
||
|
|