1load("@io_bazel_rules_docker//container:container.bzl", "container_image")
2load("@io_bazel_rules_docker//docker/util:run.bzl", "container_run_and_commit")
3load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
4load("@rules_pkg//:pkg.bzl", "pkg_tar")
5load("//hack/build/rules/container:index.bzl", "container_push", "go_image")
6
7go_binary(
8 name = "xserver",
9 embed = [":xserver_lib"],
10 visibility = ["//visibility:public"],
11)
12
13go_library(
14 name = "xserver_lib",
15 srcs = ["main.go"],
16 importpath = "edge-infra.dev/cmd/sds/display/xserver",
17 visibility = ["//visibility:private"],
18 deps = [
19 "//pkg/lib/fog",
20 "//pkg/sds/display/k8s/controllers/xserver",
21 "@io_k8s_sigs_controller_runtime//:controller-runtime",
22 ],
23)
24
25pkg_tar(
26 name = "setup_script",
27 extension = "tgz",
28 files = {
29 ":setup.sh": "setup.sh",
30 ":autostart": "/root/.config/openbox/autostart",
31 ":background.png": "/root/.config/openbox/background.png",
32 "@openbox_apk//file": "openbox.apk",
33 },
34 mode = "755",
35 package_dir = "/",
36 tags = [
37 "manual",
38 "no-remote-cache",
39 ],
40)
41
42container_image(
43 name = "alpine_image",
44 base = "@alpine//image",
45 tags = [
46 "manual",
47 "no-remote-cache",
48 ],
49 tars = [
50 ":setup_script",
51 ],
52)
53
54container_run_and_commit(
55 name = "configured_alpine_image",
56 commands = [
57 "./setup.sh",
58 "rm setup.sh",
59 "rm openbox.apk",
60 ],
61 image = ":alpine_image.tar",
62 tags = [
63 "manual",
64 "no-remote-cache",
65 ],
66)
67
68go_image(
69 name = "xserver_image",
70 base = ":configured_alpine_image",
71 embed = [":xserver_lib"],
72 tags = ["manual"],
73)
74
75container_push(
76 name = "container_push",
77 image = ":xserver_image",
78 image_name = "xserver",
79 repository_file = "//hack/build/rules/container:workloads-repo",
80 rules_docker = True,
81)
View as plain text