2021.08.20

DockerでWPを立ててみたよ

こんにちは、りです。
お仕事でdockerを使う機会があったので、yumとかよくわからんよ、コンテナって何?という人が細かいことはわからんがとりあえず動けばいいよ、という人向けに記事を書いてみました。(怒られそう)
しっかり知りたい人はM.claclaさんのDocker触ってみた〜を見てください。
VSCodeを使っている前提で進めていきます。

docker-compose.ymlファイルをつくる

自力で作るのが難しかったのでtelさんに作っていただきました。


version: '3'

services:
    db:
        image: mysql:5.7
        volumes:
            - db_data:/var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: ROOTのぱすわーど
            MYSQL_DATABASE: 作るDBのなまえ
            MYSQL_USER: mysqlのユーザ名
            MYSQL_PASSWORD: mysqlのパスワード

    wordpress:
        depends_on:
            - db
            - mail
        image: wordpress:5.7.1-php7.4-apache
        ports:
            - "80:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: mysqlのユーザ名
            WORDPRESS_DB_PASSWORD: mysqlのユーザ名
        volumes:
            - ./html/:/var/www/html/:cached
            - ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
          
    phpmyadmin:
        depends_on:
            - db
        image: phpmyadmin:latest
        ports:
            - "8080:80"
        restart: always
        environment:
            - PMA_ARBITRARY=1
            - PMA_HOST=db
            - PMA_USER=phpmyadminのユーザ名
            - PMA_PASSWORD=phpmyadminのパスワード

    mail:
        image: mailhog/mailhog
        ports:
            - 8025:8025
            - 1025:1025

volumes:
    db_data:

serviceってなに?

雰囲気で察していただけるかもですが、
普段サーバにインストールしてもらっているものを書きます。
今回はWPの環境を立てて、メールフォームをつけたかったので、

  • mysql
  • wp
  • phpmyadmin
  • mailhog

を入れてもらいました。

こんなにいらんよ!さらのWPでいいよ!という方は、dockerHubに公式のイメージがごりっとあるので覗いてみてください。

volumesってなに?

serviceの中と外にvolumesの記述があると、記事データなど、作ったものを残しておいてくれるみたいです。

serviceのwpのところにあるphp.iniの記述ってなに?

php.iniファイルのありかを指定しています。(たしか)
これを書いてphp.iniファイルを置いておくと、
メディアから画像がアップロードできない!!!というようなトラブルがあった時にささっと修正できます。

environmentってなに?

いろんなサービスの設定(PWとかユーザ名とか)をこのファイル内でできるやつです。
あっち見てこっち見てしなくて良いのでとってもべんり。

別のバージョンのWP(mysql)を入れたいんだが?という人は

それぞれのサービスのimageのところを修正してください。
dockerHubにあれば取ってきてもらえます。

イメージファイルを作る

改まって作る必要はないですが、ついでなので…。
今回は「wordpress」というディレクトリを作り、その中にいろいろと格納していきます。

「wordpress」の直下はこんなかんじです。

htmlの直下=普段使っているサーバのウェブルートだと思ってください。
ここにはWPのファイルが入ります。

phpのディレクトリの中にはphp.iniを入れておいてください。
特に何もいじってなければローカルにあるやつをこぴぺで大丈夫です。

VSCodeに拡張機能を入れる

この辺が入っていればなんとなくなんとかなるっぽいです。

これで大体準備完了です。

インストール~ブラウザで開いて閉じる

  1. WSL2のカーネルコンポーネント(「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」)をインストール(入ってる場合はいらないです)
  2. 公式サイトからdocker.exeをインストール
  3. イメージファイルを自分のPC内に置く
  4. ymlファイルがあるディレクトリをVSコードで開く
  5. wp-config.phpのDB設定部分をymlにあわせて修正(docker-compose.yml14行目ぐらいの「作るDBのなまえ」)
  6. VSコードのターミナルで docker-compose up -d –remove-orphans
  7. ブラウザでlocalhostを開く
  8. そのままWPの設定へ
  9. docker-compose down で終了

※mailhogは localhost:8025 で見れます。

おしまい

一覧に戻る