LoginSignup
48
51

More than 5 years have passed since last update.

Wordpressを構築するdocker-compose.yml

Last updated at Posted at 2016-04-13

はじめに

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

とするとよいです。

48
51
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
51