DockerでWordPressの開発環境を作成する(M1 Mac)
Docker Desktopをインストールする
下記公式からインストールします。
M1 Macの場合は「Mac with Apple Chip」のボタンをクリックしてください。
docker-compose.ymlの作成
任意のディレクトリにdocker-compose.yml
を作成します。
WordPressだけでなく、phpMyAdminも使えるように設定しています。
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
ファイルを作成します。
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