Docker の環境を整える ( macOS 版 )

公開日 :

また後日 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 を指定する形になります。今回、まずは指定していない状況でイメージを作成してみます。以下のようにコンテナのイメージができました。

random desc

続いて、platform に linux/amd64 を指定します。

services:
  playwright:
    image: ${COMPOSE_PROJECT_NAME}-playwright:${PROJECT_VERSION}
    platform: linux/amd64
    build:      context: ./src/playwright

実際にイメージを build すると以下のようになります。

random desc

これで Linux のコンテナをビルドできるようになりました。しかしながら、もう少し手順が必要です。というのも Linux のコンテナを M1 などの ARM ベースの macOS では互換性がないためです。この設定は、Docker Desktop の設定を利用することで、解決します。Features in Develpoment の画面を開くと以下のチェックボックスがあります。

random desc

Rosetta を Apple Silicon ではチェックすることで、動作するようになります。これがチェックできない場合は、General にある Use Virtualization framework がチェックされているかどうか、確認をしてください。

まとめ

CPU のアーキテクチャが異なる MacBook で Docker を利用する際には、ARM 用のコンテナがあり、手元で利用する分には不便になることはあまりありませんが、上記の設定をすることでクラウドに展開するためのイメージを手元で利用する、ということが可能になります。