
下準備
開発環境は、Macで動作させることを前提に進めていきます。brewのインストール
すでにインストールしてある場合は、飛ばしてください。$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
VirtulaBoxとVagrantのインストール
$ brew cask install virtualbox vagrant
DBのバックアップ
# /backup/backup.tar にバックアップファイルを作成する
sudo docker run --volumes-from db-data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /var/lib/mysql
Vagrantの設定
ディレクトリ構成を下記のようにします。.
├── Vagrantfile
└── wordpress
├── kusanagi
│ ├── data
│ ├── docker-compose.local.yml
│ └── docker-compose.yml
├── kusanagi-php7
│ ├── Dockerfile
│ ├── LICENSE
│ ├── README.md
│ └── files
├── mariadb
│ ├── README.md
│ ├── backup.tar
│ └── docker-compose.yml
└── uploads.ini
Vagrantfileはこんな感じです。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-18.04"
config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
config.vm.synced_folder "./wordpress", "/home/wordpress",
type: "rsync"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "1024"
end
config.vm.provision "shell", inline: <<-SHELL
apt-get update
timedatectl set-timezone Asia/Tokyo
apt-get install -y zsh tree zip
SHELL
end
docker-compose.yml は本番と同じものを持ってきています。docker-compose.yml と docker-compose.local.ymlの差分は次の通りです。
--- docker-compose.yml 2018-12-31 17:51:34.000000000 +0900
+++ docker-compose.local.yml 2018-12-31 17:51:30.000000000 +0900
@@ -19,8 +19,8 @@
image: primestrategy/kusanagi-nginx:1.10.0-1
environment:
VIRTUAL_HOST: oekaki-smile.com
- VIRTUAL_PORT: 443
- VIRTUAL_PROTO: https
+ VIRTUAL_PORT: 80
+ VIRTUAL_PROTO: http
LETSENCRYPT_HOST: oekaki-smile.com
LETSENCRYPT_EMAIL: [email protected]
LETSENCRYPT_TEST: "false"
@@ -36,7 +36,8 @@
external_links:
- mariadb:mysql
ports:
- - "443"
+ - 80:80
+ - 443:443
restart: always
networks:
- common_link
本番はhttpsを想定しているので、VIRTUAL_PORTに443を設定していますが、開発環境では証明書を準備するのが大変なのでVIRTUAL_PORTに80を設定しています。
VMの起動と初期設定
起動
vagrant up
設定
# dockerのインストール
$ curl -fsSL https://get.docker.com/ | sh
$ sudo systemctl enable docker
# docker-composeのインストール
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
# networkの作成
$ sudo docker network create --driver bridge common_link
# php7のビルド
$ sudo docker build -t kusanagi-php7 /home/wordpress/kusanagi-php7/
DBの復元
$ sudo docker run --volumes-from db-data -v $(pwd):/backup busybox tar xvf /backup/backup.tar
DBの起動
$ sudo docker-compose -f /home/wordpress/mariadb/docker-compose.yml up -d
ホストの書き換え
wp_optionsテーブルの値を修正する(httpsで受ける想定のところをhttpに変更しているため修正が必要)。option_name | before | after |
---|---|---|
siteurl | https://oekaki-smile.com | http://oekaki-smile.com |
home | https://oekaki-smile.com | http://oekaki-smile.com |
App Start
$ sudo docker-compose -f /home/wordpress/kusanagi-1/docker-compose.yml up -d
開発環境にアクセスする
VMのIPアドレスを取得する
public_networkでVMを起動したので、ローカルのMacと似たようなIPアドレスのはずです。# VMにssh
$ vagrant ssh
$ ifconfig
hostsファイルの設定
取得したIPアドレスをセットする。# /etc/hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
{{取得したIPアドレス}} oekaki-smile.com
ブラウザでアクセスする
http://oekaki-smile.com にアクセスする。 ブラウザにDNSキャッシュやリダイレクトキャッシュが残っている場合、表示されないことがあるので、キャッシュクリアをしたりブラウザのシークレットモードで表示してみると良いです。本番に反映する
rsyncとかscpとかでアップロードします。 ※ いつかCIでデプロイできるようにしたいものです・・・。Tips
VMのDBにローカルから接続する
VMへのsshの設定確認
$ vagrant ssh-config
DBのホストを取得
$ vagrant ssh
$ sudo docker network inspect common_link
Sequel Proを利用して接続
SSHのタブから上記で取得した情報を入力する。