WordPressはApple containerで動く?

Docker DesktopでWordPressのスタックを動かして検証しています。従って、これらの構成がApple containerで動いてくれれば、個人的にはDocker Desktopをやめられるということで検証してみました。

結論から言うと、動きますね。

WordPressはApple containerで動く?

nginx + wordpress-php + redis + mariadbの構成です。

WordPressはApple containerで動く?

Docker Composeとの差分

Apple container-compose 1.0.0 はDocker Compose互換の一部機能が未実装のため、既存のDocker Desktop向けComposeとは次の差分があります。

項目Docker ComposeApple container-compose
サービス名DNSmariadb, redis, wordpress で相互解決Compose互換のサービス名DNSが使えないため、Apple container network gateway 192.168.65.1 と公開ポートで接続
内部ポートCompose network内だけで 3306, 6379, 9000 に接続33067, 63797, 9007 をホスト側に公開してサービス間通信にも使用
永続データmacOS bind mountでも動作公式MariaDB/WordPressイメージの初期化時 chown がbind mountで失敗するため、DB/HTMLはcontainer-compose管理volumeを使用
Redis/nginx cachebind mountまたはvolume化可能再生成可能なキャッシュとして永続化しない
コンテナ名container_name を明示可能container_name とCompose管理名の扱いに差があるため、name: wp7_eval による wp7_eval-* 名へ統一
Traefik本番/既存Composeではラベルで外部公開ローカル検証専用なのでTraefikラベルは持たず、http://localhost:8087/ で直接公開
対象WordPress既存構成はPHP/WordPress世代が複数あり得るこの評価環境はWordPress 7.x公式イメージのみ

永続データはApple container-composeが管理するローカルvolumeに保存されます。macOS bind mountではMariaDBやWordPress公式イメージの初期化時 chown が失敗するため、DB/HTMLの書き込み領域はbind mountにしていません。Redisとnginx cacheは既存構成と同じく再生成可能なキャッシュ用途なので永続化しません。

GitHubに設定ファイルのレポジトリを作っておきました。