WordPressをとりあえずDockerで動かす

wordpress

環境はEC2インスタンス立ち上げ直後です。
サイズは無料枠「t2.micro」で試してます。

まずはじめに、既存パッケージのアップデートを済ませておく。

# yum update

次にdockerの利用準備を行う。

  1. dockerのインストール
  2. docker-composeのダウンロード
  3. docker-composeに実行権限を付与
# yum install docker
# curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

docker-composeのインストール方法については公式に詳細が記載されています。

Docker Compose のインストール — Docker-docs-ja 17.06 ドキュメント

次にwordpressのインストールを行います。
docker-composeを利用したwordpressのインストール方法は公式を参考にしてください。

Docker Compose のインストール — Docker-docs-ja 17.06 ドキュメント

ただし、公式のままだと少し使いづらいポイントが出てきます。

  • ホストポートが8000番台となっている。
  • php.iniの設定でアップロードのサイズ制限が2MBとなっている。

そのため、いくつか修正をする必要があります。

ここでは以下の方法を試してみます。

  1. php.iniをカスタマイズした自作のDockerイメージを作成
  2. 自作のDockerイメージを利用し、docker-composeでwordpressを構築する。

Dockerイメージの作成はイメージの定義ファイルを作成し、docker buildでビルドします。
以下のサンプルではwordpressイメージの最新版をベースに、php.iniに設定を追記するコマンドを実行するという定義を行っています。

# vi Dockerfile
FROM wordpress:latest

# set recommended PHP.ini settings
RUN { \
  echo 'max_execution_time=-1'; \
  echo 'memory_limit=-1'; \
  echo 'post_max_size=-1'; \
  echo 'upload_max_filesize=100M'; \
} > /usr/local/etc/php/conf.d/wp-recommended.ini

次にdocker buildコマンドでビルドを行います。
-t は名前とタグを指定するオプションです。
ここではcus_wordpressというイメージ名でタグを1とします。

# docker build -t cus_wordpress:1 .

docker imagesコマンドでイメージが作成されていれば成功です。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
cus_wordpress       1                   d1e7b0711acd        27 hours ago        546MB
wordpress           latest              f1da35a7ddca        2 weeks ago         546MB
mysql               5.7                 718a6da099d8        3 weeks ago         448MB

次に、docker-compose用の定義ファイルを作成します。
公式に記載の内容から、以下の部分を変更しています。

  • 利用するイメージをcus_wordpress:1に変更
  • ホストポートを8000番から80番に変更
# vi docker-compose.yml
version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: xxxx
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: xxxx

   wordpress:
     depends_on:
       - db
     image: cus_wordpress:1
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: xxxx
volumes:
    db_data:

コメント

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