Help us understand the problem. What is going on with this article?

Wordpressを構築するdocker-compose.yml

More than 3 years have passed since last update.

はじめに

version 2のdocker-compose.ymlがググっても見当たらなかったので作りました。
docker >= 1.10, docker-compose >= 1.6 でお試しください。

まっさらなWordpressを構築する

docker-compose.yml
version: "2"
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "80:80"
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: "db:3306"
    networks:
      - flat-network
    env_file: .env
  db:
    image: mysql:5.7
    volumes:
      - "db-data:/var/lib/mysql"
    networks:
      - flat-network
    env_file: .env
volumes:
  db-data:
networks:
  flat-network:

パスワードなどは別のファイルから読み込むようにしました。

.env
WORDPRESS_DB_NAME=wordpress
WORDPRESS_DB_USER=wp_user
WORDPRESS_DB_PASSWORD=hogehoge
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=hogehoge

この2ファイルを置いた後に下記コマンド実行で、Wordpressのインストール画面までいけます。

docker-compose up

wordpress_init.png

簡単ですね!

インストール済のWordpressを構築する

既にWordpressのダンプデータがあり、それをinstall_wordpress.sqlというファイル名で保存しているとします。
その場合は下記のようになります。dbvolumes2行目で、コンテナ作成時に実行されるSQLファイルを指定しています。

docker-compose.yml
version: "2"
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "80:80"
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: "db:3306"
    networks:
      - flat-network
    env_file: .env
  db:
    image: mysql:5.7
    volumes:
      - "db-data:/var/lib/mysql"
      - "./install_wordpress.sql:/docker-entrypoint-initdb.d/install_wordpress.sql"
    networks:
      - flat-network
    env_file: .env
volumes:
  db-data:
networks:
  flat-network:

tips

MySQLコンテナのmysqldump

ちなみに、動作中のMySQLコンテナからdumpを取る場合はこんな感じでいけました。

docker exec -it MySQLコンテナID sh -c 'mysqldump wordpress -u wp_user -pXXXXXXXX 2> /dev/null' > install_wordpress.sql

コンテナの削除について

docker-compose down

としてもvolumeは削除されずデータが永続してしまうので、volumeも含めて削除する時は

docker-compose down -v

とするとよいです。

vivivit-inc
ポートフォリオで企業と出会えるクリエイター向け就職サービスViViViTと、クリエイター支援を行っている会社です
https://www.vivivit.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away