LoginSignup
1
0

More than 1 year has passed since last update.

Apple Silicon 上の Docker で bitnami の wordpress イメージを使うには

Posted at

 基本的には https://hub.docker.com/r/bitnami/wordpress の情報通りにやればいいのだけれど、ここに書いてある docker-compose.yml 通りだと Apple Silicon では上手くいかなかった。
 根本原因は arm64 用のイメージが用意されていないことである。
 なので、これを解決するために以下の3つのことを行なった。

  1. Rosetta2 をインストールした
  2. 公式のdocker-compose.yml上に platform を用いて amd64 を明示した
  3. apache に Mutex posixsem を設定する

1. Rosetta2 をインストールする

 こちらにある通り、Docker Desktop 4.3.0 からはインストール要件から Rosetta2 が外れている。
 が、これがないと動かないものもあると思われるため、念の為インストールしておく。

$ softwareupdate --install-rosetta

2. docker-compose.yml に amd64 を明示する

 bitnami の wordpress イメージは以下のコマンドでインストールする。

$ curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/wordpress/docker-compose.yml > docker-compose.yml
$ docker-compose up -d

 今のままで2行目の docker-compose up -d コマンドを実行しても、

mariadb The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
wordpress The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

というメッセージが出てくる。
 これを出ないようにするには、 docker-compose.yml の mariadb と wordpress に、以下の行を追加する。

mariadb:
  image: docker.io/bitnami/mariadb:10.6
+ platform: linux/amd64
wordpress:
  image: docker.io/bitnami/wordpress:6
+ platform: linux/amd64

 こうすると、上記のメッセージが出てこなくなる。

3. apache に Mutex posixsem を設定する

 2までの処理を行なっても、実は wordpress の方は起動後にエラーでコンテナが落ちてしまい、正常に起動しない。

$ docker compose logs wordpress

でログを見てみると、

wordpress 06:34:57.50 INFO  ==> ** Starting Apache **
[Wed Jan 04 06:34:57.621748 2023] [core:emerg] [pid 1] (95)Operation not supported: AH00023: Couldn't create the mpm-accept mutex 
(95)Operation not supported: could not create accept mutex
AH00015: Unable to open logs

というエラーを最後にコンテナが落ちている。
 この Operation not supported: could not create accept mutex でググると、最初に出てくるのが次のページである。
https://github.com/bitnami/bitnami-docker-wordpress/issues/316
ここにあるように apache2 の設定に Mutex posixsem を付け加えれば良い。
そのためには、Dockerfile の RUN コマンドを用いる。
なので、次の Dockerfile を追加し、更に docker-compose.yml を次のように変更する。

FROM --platform=linux/amd64 bitnami/wordpress:6

RUN echo 'Mutex posixsem' >>/opt/bitnami/apache2/conf/httpd.conf
wordpress:
-    image: docker.io/bitnami/wordpress:6
+    build: .

 これで Apple Silicon 上の Docker で bitnami の wordpress イメージが動くようになった。
 あとは公式の説明にある volumes の設定などを忘れずに行うといいだろう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0