Docker Selenium経由のマルチアーキテクチャイメージ

このブログ投稿では、公式Selenium Docker HubレジストリでSelenium Grid Server用のマルチアーキテクチャイメージが利用可能になったことを発表します。

Selenium Docker Hub レジストリで Selenium Grid Server 用のマルチアーキテクチャイメージが公開されたことを発表できて大変うれしく思います。

モチベーション

Apple Mシリーズや Raspberry Pi などのプラットフォームで実行できる実験的な Docker コンテナイメージについては、SeleniumHQ-Community/docker-seleniarm でホストされているコミュニティ主導のリポジトリイニシアチブを参照してください。これらのイメージは、linux/arm64 (aarch64)、linux/arm/v7 (armhf)、および linux/amd64 の個別のアーキテクチャ用に構築され、Seleniarm Docker Hub レジストリで公開されています。

マルチアーキテクチャ Docker コンテナイメージの存在をより広く認識させ、コンテナイメージの構築方法に関するより深い洞察と透明性を提供し、それらの構築と保守における課題を克服するために。フォークをメインプロジェクトである Docker Selenium にマージし、Selenium Docker Hub レジストリにマルチアーキテクチャイメージを公開することにしました。

概要

イメージタグ リリース 4.21.0 以降、Docker Selenium でサポートされるアーキテクチャは以下のとおりです

アーキテクチャオペレーティングシステム利用可能
x86_64 (別名 amd64)Ubuntu LTS
aarch64 (別名 arm64/armv8)Ubuntu LTS
armhf (別名 arm32/armv7l)N/A

ホストマシンのアーキテクチャに基づいて、Docker はプラットフォームに適したイメージを自動的にプルします。

ブラウザバイナリ

さまざまなアーキテクチャで利用可能なブラウザバイナリを見てみましょう

Google は Linux/ARM プラットフォーム向けに Chrome (google-chrome) をビルドしていません。したがって、Chrome (node および standalone) イメージは AMD64 でのみ利用可能です。同様に、Microsoft は Linux/ARM プラットフォーム向けに Edge (microsoft-edge) をビルドしていません。

代わりに、オープンソースの Chromium ブラウザが Chrome および Edge の代わりに使用されます。standalone-chromium および node-chromium

$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest

Mozilla Firefox は現在、Nightly チャネル経由で Linux/ARM64 で利用可能です。ARM64 イメージの Firefox バージョンは、安定版リリースが利用可能になるまで、AMD64 バージョンとは異なります。

イメージ名オペレーティングシステムamd64arm64
standalone-chromiumUbuntu LTS
node-chromiumUbuntu LTS
standalone-firefoxUbuntu LTS
node-firefoxUbuntu LTS
standalone-edgeUbuntu LTS
node-edgeUbuntu LTS
standalone-chromeUbuntu LTS
node-chromeUbuntu LTS

マルチアーキテクチャイメージのビルド、テスト、および配布

マルチアーキテクチャイメージがシームレスに構築、テスト、および配布されるようにするために行われたことも共有したいと思います。

  • Bash スクリプトと Makefile を利用して、タスクを可能な限りラップします。これにより、コンテナイメージがどのように構築され、単一のコマンドで処理されるかの透明性が提供されます。

  • CircleCI で Arm VM のサポートを利用して、ARM64 イメージをビルド、テスト、およびデプロイします。GitHub Actions が Arm ベースのホストランナーを正式にサポートすると、これらのワークフローは同じ場所に簡単に戻すことができます。AMD64 イメージに対して行われたすべてのテスト (Docker、Docker Compose、Kubernetes へのデプロイを含む) は、ARM64 イメージを検証するために使用されます。

  • Docker Engine の実験的機能である containerd イメージストア を利用して、マルチアーキテクチャイメージを簡単な方法で構築および配布します。

これにより、コミュニティがさまざまなプラットフォームでの Selenium Grid Server のデプロイを簡素化するために、マルチアーキテクチャイメージを簡単に見つけて使用できるようになることを願っています。


SeleniumHQ の X (旧 Twitter) または LinkedIn をフォローして、最新情報にご期待ください!

ハッピーテスティング!