@@ -2,9 +2,9 @@ package(default_visibility = ["//deploys/k8s:__pkg__"])
22
33load ("@io_bazel_rules_docker//java:image.bzl" , "java_image" )
44load ("@io_bazel_rules_docker//contrib:passwd.bzl" , "passwd_entry" , "passwd_file" )
5- load ("@io_bazel_rules_docker//container:container.bzl" , "container_image" )
6- load ("@io_bazel_rules_docker//container:container.bzl" , "container_image" , "container_push" )
5+ load ("@io_bazel_rules_docker//container:container.bzl" , "container_image" , "container_layer" , "container_push" )
76load ("@rules_pkg//:pkg.bzl" , "pkg_tar" )
7+ load ("//:copy_file.bzl" , "copy_file" )
88
99REGISTRY = "localhost:5000"
1010
@@ -42,33 +42,22 @@ pkg_tar(
4242ENTRY_POINT = [
4343 "java" ,
4444 "-jar" ,
45- "/app/selenium_server_deploy.jar " ,
45+ "/opt/selenium/bin/selenium " ,
4646]
4747
48- container_image (
49- name = "passwd-image" ,
50- base = "@java_debug_image_base//image" ,
48+ container_layer (
49+ name = "passwd-layer" ,
5150 tars = [":passwd-tar" ],
5251)
5352
5453container_image (
5554 name = "grid-base" ,
56- base = ":passwd- image" ,
57- directory = "/app" ,
58- files = [
59- "//java/server/src/org/openqa/selenium/grid:selenium_server_deploy.jar " ,
55+ base = "@java_image_base// image" ,
56+ layers = [
57+ ":grid-binary" ,
58+ ":passwd-layer " ,
6059 ],
61- user = "seluser" ,
62- workdir = "/app" ,
63- )
64-
65- container_image (
66- name = "grid-debug-base" ,
67- base = ":passwd-image" ,
6860 directory = "/app" ,
69- files = [
70- "//java/server/src/org/openqa/selenium/grid:selenium_server_deploy.jar" ,
71- ],
7261 user = "seluser" ,
7362 workdir = "/app" ,
7463)
@@ -145,31 +134,80 @@ container_image(
145134 ],
146135)
147136
137+ container_layer (
138+ name = "grid-binary" ,
139+ directory = "/opt/selenium/bin" ,
140+ files = [
141+ "//java/server/src/org/openqa/selenium/grid:executable-grid" ,
142+ ],
143+ )
144+
145+ container_layer (
146+ name = "one-shot" ,
147+ directory = "/opt/selenium" ,
148+ files = [
149+ "//java/server/src/org/openqa/selenium/grid/node/k8s"
150+ ],
151+ )
152+
153+ container_layer (
154+ name = "start-scripts" ,
155+ directory = "/opt/selenium/bin" ,
156+ files = [
157+ ":selenium.sh" ,
158+ ],
159+ )
160+
161+ container_image (
162+ name = "chrome-node" ,
163+ base = "@chrome_standalone//image" ,
164+ layers = [
165+ ":grid-binary" ,
166+ ":one-shot" ,
167+ ":start-scripts" ,
168+ ],
169+ ports = [
170+ "5555" , # Selenium
171+ "5900" , # vnc,
172+ ],
173+ user = "seluser" ,
174+ entrypoint = [
175+ "/opt/selenium/bin/selenium.sh" ,
176+ "node" ,
177+ ],
178+ )
179+
148180container_push (
149- name = "push-firefox -node" ,
181+ name = "push-chrome -node" ,
150182 format = "Docker" ,
151- image = ":firefox -node-image " ,
183+ image = ":chrome -node" ,
152184 registry = REGISTRY ,
153- repository = "selenium/firefox -node" ,
185+ repository = "selenium/chrome -node" ,
154186)
155187
156188container_image (
157- name = "firefox-node-image" ,
158- base = "@firefox-standalone//image" ,
159- cmd = None ,
160- directory = "/app" ,
161- entrypoint = [
162- "java" ,
163- "-jar" ,
164- "/app/selenium_server_deploy.jar" ,
165- "node" ,
166- "-p" ,
167- "4444" ,
168- "--detect-drivers" ,
189+ name = "firefox-node" ,
190+ base = "@firefox_standalone//image" ,
191+ layers = [
192+ ":grid-binary" ,
193+ ":one-shot" ,
194+ ":start-scripts" ,
169195 ],
170- files = ["//java/server/src/org/openqa/selenium/grid:selenium_server_deploy.jar" ],
171196 ports = [
172- "4444/tcp" ,
197+ "5555" , # Selenium
198+ "5900" , # vnc,
173199 ],
174200 user = "seluser" ,
201+ entrypoint = [
202+ "/opt/selenium/bin/selenium.sh" ,
203+ "node" ,
204+ ],
205+ )
206+
207+ container_push (
208+ name = "push-firefox-node" ,
209+ format = "Docker" ,
210+ image = ":firefox-node" ,
211+ registry = REGISTRY ,
212+ repository = "selenium/firefox-node" ,
175213)
0 commit comments