【DockerでWordPress構築③】Docker ComposeでWordPressを起動する

Docker

今回は、Docker Composeを使ったWordPressの構築方法を見ていきたいと思います!

Docker Composeとは

Docker Composeを使うことで、複数のコンテナやボリューム、ネットワークなどをひとまとめに扱うことができるようになります。

構築に関するコマンド内容を一つの定義ファイルに書き込み、一気に実行や停止などを行うことができます。


Docker Compose を使うには、Docker とは別にインストールする必要がありますが、Docker Desktop を使用している場合は既に入っているため不要です。

docker-compose.ymlの作成

定義ファイルの名前は決まっており、「docker-compose.yml」になります。

こちらをお好みのディレクトリに配置してください。



では、先に完成したファイルをお見せします。

version: "3"

services: 
  mysql:
    image: mysql:5.7
    volumes: 
      - db_vol:/var/lib/mysql
    restart: always
    environment: 
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp_db
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: userpass
  wordpress:
    depends_on: 
      - mysql
    image: wordpress
    volumes: 
      - wp_vol:/var/www/html
    ports: 
      - 8002:80
    restart: always
    environment: 
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_NAME: wp_db
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: userpass
volumes: 
  db_vol:
  wp_vol:


ご覧のように、階層的な構造になっているのがわかるかと思います。

YAML形式について

「.yml」ファイルはYAML形式で書かれており、スペースに意味がある言語になります。

・一段下げたときにインデントとして入れるスペースの数を統一する
(今回はスペース2つ分)

・「:」の後ろにはスペースが1つ必要
・「-」が入っていれば複数指定できる

docker-compose.ymlの構造

まず大項目に「version」「services」「volumes」とあります。


「version」… Docker Compose のバージョン
「services」…Docker のコンテナに相当
「volumes」はボリュームを定義


「networks」という項目も定義できますが、Docker Compose を使用すると自動的に作成されるため今回は省略しています。



では、「services」の中身を見ていきます。

mysql サービス(コンテナ)

大項目の「volumes」で定義した「wp_vol」というボリュームをこちらで指定しています。

    volumes: 
      - db_vol:/var/lib/mysql


以下の項目は、コンテナが停止したときに必ず再起動するよう指定しています。

restart: always

wordpress サービス(コンテナ)


「depends_on」は、他のサービスに依存することを示します。
先に作成されている必要があるサービス名を入れることで、コンテナ作成の順番を決めることができます。

WordPress は先にMySQL コンテナを作る必要があるので、このように書くことで、
MySQL → WordPress の順で作成することができます。

    depends_on: 
      - mysql


また、「environment」の注意点として、
「WORDPRESS_DB_HOST」には、データベースのサービス名を指定してください。

    environment: 
      WORDPRESS_DB_HOST: mysql

Docker Compose の実行

では、直下に「docker-compose.yml」があるディレクトリに移動し、以下のコマンドを実行します。

docker-compose up -d


処理の終了後、以下を実行し、

docker-compose ps


コンテナの Status が2つとも Up になっていれば正常に起動できています。


では、ブラウザで表示を確認します。
wordpress サービスの「ports」で指定したポート番号でアクセスします。

    ports: 
      - 8002:80


私の環境だと、以下のURLになります。

localhost:8002



これでアクセスし、以下のような表示になっていれば成功です!




参考書

コメント

コンタクトフォーム

    タイトルとURLをコピーしました