diff --git a/docker-selenium.yaml b/docker-selenium.yaml index 22c1cbece5..59347ffb3e 100644 --- a/docker-selenium.yaml +++ b/docker-selenium.yaml @@ -5,7 +5,7 @@ package: # 'package format error' when trying to install the package. The workaround is # to replace '-' with '.', then mangling the version to replace back. version: 4.25.0.20240922 - epoch: 0 + epoch: 1 description: Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Docker, making it easier to perform browser automation copyright: - license: Apache-2.0 @@ -15,44 +15,14 @@ package: - x86_64 dependencies: runtime: - - Xvfb - bash - busybox - - chromium - - chromium-docker-selenium-compat - coreutils - - fluxbox - - font-ipa - - font-liberation - - font-misc-cyrillic - - font-noto-emoji - - font-ubuntu - - font-wqy-zenhei - - fontconfig - - freetype - - glib - - glibc-locale-en - - libfontconfig1 - - libgcc - - libnss - - libnss-tools - - libxcb - - mcookie - - novnc - openjdk-11 - - pulseaudio - selenium-server-compat - sudo-rs - supervisor - - ttf-dejavu - tzdata - - websockify - - x11vnc - - xauth - - xkbcomp - - xkeyboard-config - - xmessage - - xvfb-run environment: contents: @@ -129,38 +99,6 @@ pipeline: io.netty:netty-codec-http:4.1.108.Final \ io.grpc:grpc-netty:${GRPC_VERSION} > ${{targets.destdir}}/external_jars/.classpath.txt - # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/NodeBase/Dockerfile - - working-directory: NodeBase - pipeline: - - runs: | - install -Dm755 start-selenium-node.sh ${{targets.destdir}}/opt/bin/ - install -Dm755 start-xvfb.sh ${{targets.destdir}}/opt/bin/ - install -Dm755 selenium.conf ${{targets.destdir}}/etc/supervisor/conf.d/ - install -Dm755 start-vnc.sh ${{targets.destdir}}/opt/bin/ - install -Dm755 start-novnc.sh ${{targets.destdir}}/opt/bin/ - install -Dm755 selenium_grid_logo.png ${{targets.destdir}}/usr/share/images/fluxbox/ubuntu-light.png - install -Dm755 generate_config ${{targets.destdir}}/opt/bin/generate_config - - mkdir -p ${{targets.destdir}}/home/$SEL_USER/.fluxbox - mkdir -p ${{targets.destdir}}/tmp/.X11-unix - mkdir -p ${{targets.destdir}}/home/$SEL_USER/.vnc - mkdir -p ${{targets.destdir}}/opt/selenium - x11vnc -storepasswd $(cat ${{targets.destdir}}/opt/selenium/initialPasswd) ${{targets.destdir}}/home/$SEL_USER/.vnc/passwd - - # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/NodeChrome/Dockerfile - - working-directory: NodeChrome - pipeline: - - runs: | - install -Dm755 wrap_chrome_binary ${{targets.destdir}}/opt/bin/wrap_chrome_binary - - # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/Standalone/Dockerfile - - working-directory: Standalone - pipeline: - - runs: | - install -Dm755 start-selenium-standalone.sh ${{targets.destdir}}/opt/bin/start-selenium-standalone.sh - install -Dm755 selenium.conf ${{targets.destdir}}/etc/supervisor/conf.d/ - install -Dm755 generate_config ${{targets.destdir}}/opt/bin/generate_config - - uses: strip subpackages: @@ -182,6 +120,96 @@ subpackages: # The extra 0 is to unset the setuid bit apparently. chmod 00775 ${{targets.subpkgdir}}/etc/supervisord.conf + # selenium-hub does not handle rendering or direct interaction with browsers + # we can skip adding chromium, Xvfb, fluxbox, and related font packages. + - name: docker-selenium-hub + description: Docker Selenium Hub + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/opt/bin + mkdir -p ${{targets.subpkgdir}}/opt/selenium + # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/Hub/Dockerfile + - working-directory: Hub + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/etc/supervisor/conf.d + cp selenium-grid-hub.conf ${{targets.subpkgdir}}/etc/supervisor/conf.d/ + install -Dm755 start-selenium-grid-hub.sh ${{targets.subpkgdir}}/opt/bin/ + cp example-config.toml ${{targets.subpkgdir}}/opt/selenium/config.toml + + - name: docker-selenium-standalone-chrome + description: Docker Selenium supervisor configuration + dependencies: + runtime: + - Xvfb + - chromium + - chromium-docker-selenium-compat + - fluxbox + - font-ipa + - font-liberation + - font-misc-cyrillic + - font-noto-emoji + - font-ubuntu + - font-wqy-zenhei + - fontconfig + - freetype + - glib + - glibc-locale-en + - libfontconfig1 + - libgcc + - libnss + - libnss-tools + - libxcb + - mcookie + - novnc + - openjdk-11 + - pulseaudio + - pulseaudio-utils + - ttf-dejavu + - websockify + - x11vnc + - xauth + - xkbcomp + - xkeyboard-config + - xmessage + - xvfb-run + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/etc + mkdir -p ${{targets.subpkgdir}}/opt/bin + # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/NodeBase/Dockerfile + - working-directory: NodeBase + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/etc/supervisor/conf.d + mkdir -p ${{targets.subpkgdir}}/usr/share/images/fluxbox + cp start-selenium-node.sh ${{targets.subpkgdir}}/opt/bin/ + cp start-xvfb.sh ${{targets.subpkgdir}}/opt/bin/ + cp selenium.conf ${{targets.subpkgdir}}/etc/supervisor/conf.d/ + cp start-vnc.sh ${{targets.subpkgdir}}/opt/bin/ + cp start-novnc.sh ${{targets.subpkgdir}}/opt/bin/ + cp selenium_grid_logo.png ${{targets.subpkgdir}}/usr/share/images/fluxbox/ubuntu-light.png + cp generate_relay_config ${{targets.subpkgdir}}/opt/bin/generate_relay_config + + mkdir -p ${{targets.subpkgdir}}/home/$SEL_USER/.fluxbox + mkdir -p ${{targets.subpkgdir}}/tmp/.X11-unix + mkdir -p ${{targets.subpkgdir}}/home/$SEL_USER/.vnc + mkdir -p ${{targets.subpkgdir}}/opt/selenium + mkdir -p ${{targets.subpkgdir}}/opt/selenium + echo "${SEL_PASSWD}" | x11vnc -storepasswd - ${{targets.subpkgdir}}/home/$SEL_USER/.vnc/passwd + # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/NodeChrome/Dockerfile + - working-directory: NodeChrome + pipeline: + - runs: | + cp wrap_chrome_binary ${{targets.subpkgdir}}/opt/bin/wrap_chrome_binary + # https://github.com/SeleniumHQ/docker-selenium/blob/trunk/Standalone/Dockerfile + - working-directory: Standalone + pipeline: + - runs: | + cp start-selenium-standalone.sh ${{targets.subpkgdir}}/opt/bin/start-selenium-standalone.sh + cp selenium.conf ${{targets.subpkgdir}}/etc/supervisor/conf.d/ + cp generate_config ${{targets.subpkgdir}}/opt/bin/generate_config + update: enabled: true ignore-regex-patterns: