/quick-start-wordpress-docker

dockerによるWordpressのローカル環境構築

Primary LanguageMakefileMIT LicenseMIT

Quick-start-wordpress-docker

DockerによるWordpressのローカル環境構築を行うためのリポジトリ

Features

  • Dockerによるwordpressのローカル環境構築
  • wordmoveへの本番環境デプロイ, バックアップ

How to start

0. 事前準備

Macにdocker, docker-composeをインストール
以下参考: Docker Compose - インストール - Qiita

1. 環境変数の設定

このリポジトリをクローン

$ git clone https://github.com/kawamataryo/quick-start-wordpress-docker.git project-dir

.envにdocker-composeで使う環境変数を定義しています。
コメントを元に記載してください。

vi ./.env
# -------------------------------------------
# wordpress・mysqlコンテナの設定
# -------------------------------------------
# プロダクトの名前 作成されるcontainer名の接頭語として使用
PRODUCTION_NAME=
# local wordpressを紐付けるPort名(ex: 8080)
LOCAL_SERVER_PORT=
# localのmysqlを紐付けるPort名(ex: 3306)
LOCAL_DB_PORT=

# -------------------------------------------
# wordmoveコンテナの設定
# -------------------------------------------
# 全て本番環境の情報
# URL
PRODUCTION_URL=
# wordpressのディレクトリの絶対パス
PRODUCTION_DIR_PATH=
# DB名
PRODUCTION_DB_NAME=
# DBのユーザー名
PRODUCTION_DB_USER=
# DBのパスワード
PRODUCTION_DB_PASSWORD=
# DBのホスト名
PRODUCTION_DB_HOST=
# DBの接続ポート
PRODUCTION_DB_PORT=
# SSHホスト名
PRODUCTION_SSH_HOST=
# SSHユーザー名
PRODUCTION_SSH_USER=
# SSHポート名
PRODUCTION_SSH_PORT=

2. Dockerコンテナの起動

docker-composeで関連コンテナを起動します。

$ docker-compose up -d

3. Wordpressの初期化

.envのLOCAL_SERVER_PORTに設定したホストにアクセスし、worpdressの初期化を行います

$ open http://localhost:8080

4. Dockerコンテナの停止

docker-composeで関連コンテナを停止します。

参考:
docker-compose downを行うと、DBのデータも初期化されてしまうので、注意。
もし永続化したい場合は以下を参考に設定を追加する。
DockerでMySQLのデータを保存する方法

$ docker-compose stop

How to use wordmove ?

wordmoveを使えば容易に本番環境とローカル環境の同期が可能です。

1. wordmoveのコンテナに接続

wordmoveのコンテナが起動した状態で以下コマンドを実行します。

$ docker exec -w /home/ -it wordmoveのコンテナ名 /bin/bash

2. sshの設定

コンテナから本番環境に同期するためssh-agentの設定を行います。
接続先サーバーとのssh接続設定、ローカルのssh/configの設定は終わっていることを前提としてます。
またid_rsa(秘密鍵)までのパスは接続するサーバーに合わせて記載してください。
参考:
エックスサーバーにSSHで接続してみよう! | vdeep
ssh-agentを利用して、安全にSSH認証を行う - Qiita

# ssh-agentの起動
$ ssh-agent bash

# ssh-agentの登録。
$ ssh-add /home/.ssh/id_rsa

# wordmoveのmysql dumpで使うrubyのエンコーディング
export RUBYOPT=-EUTF-8

3. 同期・デプロイ

あとはコマンド一発で同期が可能です。
本番のデータをローカルにバックアップしたい場合は、、

$ wordmove pull --all

ローカルのデータを本番にアップロードしたい場合は、、

$ wordmove push --all

さらにオプション部分の指定で、DBのみthemesのみなど同期内容を変更可能です。
参考:
Wordmoveの基本操作 - Qiita

TODO

  • wordmoveで毎回ssh-addの設定を行う手間を削減(docker-composeのcommandで行う?)
  • MySQLのデータ永続化の設定追加