また後日 Search のネタに戻りますが、その前に Search と連携するためのツールを少し用意したいと思います。そのために、今回は Docker の環境を整えていきます。まずは macOS 版、明日は Windows の環境を私はこうしてます、的なメモ程度のものですが紹介しておきます。
前提条件
今回の作業をしているマシンは以下の通りです。
- MacBook Pro 14 ( 2021 )
- Apple M1 Max
- メモリ 32GB
- macOS Sonoma 14.0
このマシンは M1 ということで ARM 版の MacBook となります。このため、Windows コンテナを利用することはできませんが、Linux コンテナを扱うことは可能です。今回はその手順を紹介していきます。
インストール
インストールとしては、今回はさくっと Docker Desktop をインストールしてください。
基本的にはこれで Docker を利用することが可能になります。
Linux コンテナを利用する方法
上記の Docker Desktop をインストールしても、そのままでは ARM 版のコンテナがダウンロードされたり、ツールも macOS 向けのものがインストールされる形となります。これに関しては、プラットフォームを指定することで、amd64 版の Linux コンテナを利用することができます。
指定方法としては、docker-compose.yml ファイルで以下のように platform を指定する形になります。今回、まずは指定していない状況でイメージを作成してみます。以下のようにコンテナのイメージができました。
続いて、platform に linux/amd64 を指定します。
services:
playwright:
image: ${COMPOSE_PROJECT_NAME}-playwright:${PROJECT_VERSION}
platform: linux/amd64
build: context: ./src/playwright
実際にイメージを build すると以下のようになります。
これで Linux のコンテナをビルドできるようになりました。しかしながら、もう少し手順が必要です。というのも Linux のコンテナを M1 などの ARM ベースの macOS では互換性がないためです。この設定は、Docker Desktop の設定を利用することで、解決します。Features in Develpoment の画面を開くと以下のチェックボックスがあります。
Rosetta を Apple Silicon ではチェックすることで、動作するようになります。これがチェックできない場合は、General にある Use Virtualization framework がチェックされているかどうか、確認をしてください。
まとめ
CPU のアーキテクチャが異なる MacBook で Docker を利用する際には、ARM 用のコンテナがあり、手元で利用する分には不便になることはあまりありませんが、上記の設定をすることでクラウドに展開するためのイメージを手元で利用する、ということが可能になります。