個人的に興味のあるクローリングとスクレイピングを試してみたくて、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のポイント
使い捨て
あえてデータの永続化はしていません。使い続けるとは思えないので、使い捨てできるようにしています。
最新イメージの使用
mysqlとwordpressは最新のイメージを使用するようにしています。
初期データセット
初期データをセットするようにしています。
初期データとして、以下のように簡単なSQLをdocker-entrypoint-initdb.dに渡しています。
volumes: - ./wordpress.sql:/docker-entrypoint-initdb.d/wordpress.sql
依存関係
起動順を制御するdepends_onを使用しています。wordpressとphpmyadminはDBが起動した後に動くようにしています。
depends_on: - db
参考にした記事
以下のwordpress環境構築はとても参考になりました。
Compose fileのversion3については、以下を参考にしています。