🦔

DockerでWordPressの開発環境を作成する(M1 Mac)

2022/09/20に公開

Docker Desktopをインストールする

下記公式からインストールします。

M1 Macの場合は「Mac with Apple Chip」のボタンをクリックしてください。
https://www.docker.com/products/docker-desktop/

docker-compose.ymlの作成

任意のディレクトリにdocker-compose.ymlを作成します。

WordPressだけでなく、phpMyAdminも使えるように設定しています。

docker-compose.yml
version: '3'

services:
  db:
    platform: linux/x86_64 # M1 Mac対応
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: mywordpress
      MYSQL_DATABASE: wordpress # DB名
      MYSQL_USER: wordpress # DBユーザー名
      MYSQL_PASSWORD: wordpress # DBパスワード

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress # DB名
      WORDPRESS_DB_USER: wordpress # DBユーザー名
      WORDPRESS_DB_PASSWORD: wordpress # DBパスワード

  phpmyadmin:
    image: phpmyadmin:latest
    volumes:
      - ./phpmyadmin/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
    restart: always
    depends_on:
      - db
    ports:
      - 8888:80

volumes:
  db_data:

上記設定のようにplatform: linux/x86_64の記述がなければ、以下のエラーが発生してしまうので注意してください。

no matching manifest for linux/arm64/v8 in the manifest list entries

phpMyAdminの設定を追加する

docker-compose.ymlを作成した同ディレクトリにphpmyadminフォルダを作成し、その配下にphpmyadmin-misc.iniファイルを作成します。

phpmyadmin/phpmyadmin-misc.ini
allow_url_fopen = Off # ファイルを開く時にURLのようにして開くかどうか
max_execution_time = 600 # 処理の実行時間。
memory_limit = 64M # 処理で使用するメモリの上限値
post_max_size = 64M # POSTデータの上限サイズ
upload_max_filesize = 64M # アップロードできるファイルの上限サイズ。

phpMyAdmion経由で容量の大きいデータをインポートする場合、デフォルトだと以下のようなエラーが発生してしまうため、上記設定を施しています。

Fatal error: Allowed memory size of xxxxx bytes exhausted (tried to allocate 16 bytes) in 

実際にDockerを立ち上げてみる

DockerでWordPressやphpMyAdminを立ち上げるために必要なイメージやコンテナ等を作成し、アプリケーションを立ち上げるために、下記コマンドを実行します。

docker-compose up -d

上記を実行すると、wpディレクトリが新たに作成され、その配下にWordPressの関連ファイルがインストールされていきます。

WordPressの確認

http://localhost:8000 を開くと、以下のようにWordPressの設定画面が表示されることが確認できるはずです。

phpMyAdminの確認

phpMyAdminもhttp://localhost:8888/ で立ち上がっていることを確認できるはずです。

docker-compose.yml内でユーザー名とパスワードはそれぞれwordpressでログインできるように設定しています。適宜修正してください。

アプリケーションを終了

以下コマンドを実行し、docker-compose upで作成したコンテナ、イメージ等を削除します。

docker-compose down

WordPressの関連ファイルやデータベースは保持されるようにdocker-compose.ymlで設定してあります。もし、データベースも消去したい場合は以下コマンドを実行してください。

docker-compose down --volumes

以上です。お疲れ様でした😋

Discussion