東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

docker-composeでwordpress環境を構築し、phpmyadminでmysqlを操作できるようにした


スポンサードリンク

個人的に興味のあるクローリングとスクレイピングを試してみたくて、docker-composeでwordpress環境を構築しました。

インターネット上で公開しているwebサービスに対し、頻繁にリクエストを送ると岡崎市立中央図書館事件のようなこともあるので、次週に使える環境を構築しておこうと考えたのです。

wordpressで使用しているmysqlを直接操作できるようにした方が楽だと考えて、phpmyadminも使用できるようにしました。

docker-compose.yml

作成したdocker-compose.ymlは以下です。

docker-compose upとすれば起動します。

version: '3'

services:
   db:
     image: mysql:latest

     environment:
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wp_user
       MYSQL_PASSWORD: password
       MYSQL_RANDOM_ROOT_PASSWORD: "yes"
     volumes:
        - ./wordpress.sql:/docker-entrypoint-initdb.d/wordpress.sql

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8080:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wp_user
       WORDPRESS_DB_PASSWORD: password

   phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
       - db
    environment:
      PMA_ARBITRARY: 1
      PMA_HOST: db
      PMA_USER: wp_user
      PMA_PASSWORD: password
    ports:
      - 8081:80
    volumes:
      - /sessions

docker-compose.ymlのポイント

使い捨て

あえてデータの永続化はしていません。使い続けるとは思えないので、使い捨てできるようにしています。

最新イメージの使用

mysqlwordpressは最新のイメージを使用するようにしています。

初期データセット

初期データをセットするようにしています。

初期データとして、以下のように簡単なSQLをdocker-entrypoint-initdb.dに渡しています。

     volumes:
        - ./wordpress.sql:/docker-entrypoint-initdb.d/wordpress.sql

依存関係

起動順を制御するdepends_onを使用しています。wordpressphpmyadminはDBが起動した後に動くようにしています。

     depends_on:
       - db

参考にした記事

以下のwordpress環境構築はとても参考になりました。

tech.recruit-mp.co.jp

Compose fileのversion3については、以下を参考にしています。

qiita.com