blob: d5a563858b74ba9bc838892c05ebbc30a7b777ad [file] [log] [blame] [edit]
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("//common/private:passwd.bzl", "passwd_entry", "passwd_file")
load(":docker.bzl", "docker_image")
REGISTRY = "localhost:5000"
# Create a passwd file with a root and selenium user and uid.
passwd_entry(
name = "root_user",
gid = 0,
uid = 0,
username = "root",
)
passwd_entry(
name = "seluser",
home = "/home/seluser",
info = "Selenium User",
uid = 1002,
username = "seluser",
)
passwd_file(
name = "passwd",
entries = [
":root_user",
":seluser",
],
)
pkg_tar(
name = "passwd-tar",
srcs = [":passwd"],
mode = "0644",
package_dir = "etc",
)
ENTRY_POINT = [
"java",
"-jar",
"/opt/selenium/bin/selenium",
]
docker_image(
name = "grid-base",
base = "@java_image_base",
entrypoint = ENTRY_POINT,
tars = [
":grid-binary",
":passwd-tar",
],
user = "seluser",
workdir = "/app",
)
docker_image(
name = "distributor-image",
base = ":grid-base",
entrypoint = ENTRY_POINT + ["distributor"],
ports = [
"5553/tcp", # Web
],
)
docker_image(
name = "event-bus-image",
base = ":grid-base",
entrypoint = ENTRY_POINT + ["event-bus"],
ports = [
"5557/tcp", # Web
"4442/tcp", # ZeroMQ
"4443/tcp",
],
)
docker_image(
name = "router-image",
base = ":grid-base",
entrypoint = ENTRY_POINT + ["router"],
ports = [
"4444/tcp",
],
)
docker_image(
name = "session-map-image",
base = ":grid-base",
entrypoint = ENTRY_POINT + ["sessions"],
ports = [
"5556/tcp", # Web
"4442/tcp", # ZeroMQ
"4443/tcp",
],
)
docker_image(
name = "session-queue-image",
base = ":grid-base",
entrypoint = ENTRY_POINT + ["sessionqueue"],
ports = [
"5559/tcp", # Web
"4442/tcp", # ZeroMQ
"4443/tcp",
],
)
pkg_tar(
name = "grid-binary",
srcs = [
"//java/src/org/openqa/selenium/grid:executable-grid",
],
mode = "0755",
package_dir = "/opt/selenium/bin",
)
pkg_tar(
name = "one-shot",
srcs = [
"//java/src/org/openqa/selenium/grid/node/k8s",
],
package_dir = "/opt/selenium",
)
pkg_tar(
name = "start-scripts",
srcs = [
":selenium.sh",
],
package_dir = "/opt/selenium/bin",
)
docker_image(
name = "chrome-node",
base = "@chrome_standalone",
entrypoint = [
"/opt/selenium/bin/selenium.sh",
"node",
],
ports = [
"5555", # Selenium
"5900", # vnc,
],
tars = [
":grid-binary",
":one-shot",
":start-scripts",
],
user = "seluser",
)
docker_image(
name = "firefox-node",
base = "@firefox_standalone",
entrypoint = [
"/opt/selenium/bin/selenium.sh",
"node",
],
ports = [
"5555", # Selenium
"5900", # vnc,
],
tars = [
":grid-binary",
":one-shot",
":start-scripts",
],
user = "seluser",
)