iphoneのカレンダーをGoogleアカウントと共有したらはまったでやんす
iphoneのカレンダーの色が見づらい!
嫁のiphoneと俺のiphoneのカレンダーを同じGoogleアカウントに紐付けして、お互いの予定を共有できるようにしている。
が、最近になって、(多分iosをアップデートしたタイミングで)カレンダーの色がおかしくなった。
俺は、ハチカレンダー2という昔からのカレンダーを使っているのだが、
背景と文字が同じ色になったので、とても見づらい。
Google連携しているカレンダーだけ、色が変えれないでやんす
他のカレンダーは、色を変えれるのだが、googleアカウントで連携しているカレンダーには、色を変えるためのスライダーがでてこない
本来なら、カレンダーの横に色を設定するためのスライダーが出てくるのだが・・・。
ってわけで、iphoneの設定画面で、googleのアカウントを繋ぎ直したり、デフォルトのカレンダーの設定を見てみても何も解決せず・・・。
うーん、なぜだ。ハチカレンダー2自体が、古いアプリなので、iosの変化についていけなくなったのか。
なんて、思ってたが、いざ、PCでgoogleカレンダーを閲覧したら、あることに気づいた。
カレンダーアプリは悪くなかったでやんす
あれ?iphoneのカレンダーの予定の背景色とGoogleカレンダーの予定の背景色が似ているぞ?
試しに、Googleカレンダーの色を変更してみた。
んでもって、しばらくしたら。
iphoneのカレンダーの背景色も変わりよった。
結論
iphoneは、Googleカレンダーの予定だけでなく、予定の背景色まで連携するらしい。
なので、iphone側では、背景色を変更できなくなっていた模様。
なんという、無駄な連携。
でも、これいつからなんだろ。
とりあえず、解決したらからいーか。
初めてDocker触ってwordpressの開発環境を作るまで
前回、Dockerを使ってwordpressの動作環境は作れた。 ryoben.hateblo.jp
じゃ、次は開発環境を作りましょう。
開発環境とは
- ローカルのPC上(MAC)でソースを編集できる
- ソース編集したらすぐブラウザ上で変更を確認できる
方法検討
Docker-Toolboxは、MAC(Windows)=>VM=>Dockerコンテナ(WordPress)という三段構え。
なので、MAC上でWordPressのソースを直接いじるってことは、VMをスルーしてコンテナの中のファイルを触る必要がある。
そこで、前回の課題のデータの永続化という話が出てくる。
Docker runコマンドのオプションで、 −v [ホストディレクトリ]:[コンテナディレクトリ] とすると、ホスト(ここではVM)のディレクトリをコンテナ上にマウントすることができる。
で、さらに、Docker-Toolboxはデフォルトで、MACの /Users ディレクトリをVM上にマウントする。 (winだとC:\Users)
ということで、MACの/Userディレクトリ配下にwordpressのソースを置いて、それをVM経由して、Dockerコンテナにマウントすると、MACのソースをいじる=コンテナのソースをいじる。ということになる。
やってみる
wordpressのソースがどこにあるか確認
Dockerfileを見るに、
/var/www/html
にあるみたい。(/usr/src/wordpressにもあるみたいだけど・・・)
コンテナにbashで入って、確認してみる。
docker exec -it wordpress bash
cd
/var/www/html
ls
index.php wp-blog-header.php wp-cron.php wp-mail.php
license.txt wp-comments-post.php wp-includes wp-settings.php
readme.html wp-config-sample.php wp-links-opml.php wp-signup.php
wp-activate.php wp-config.php wp-load.php wp-trackback.php
wp-admin wp-content wp-login.php xmlrpc.php
あるある。
WordPressのソースをローカルにコピーする
このソース達を、ローカルにコピーしないとローカルで編集できない。
で、wordpressのDockerfileには、もともとこの/var/www/html にVOLUME指定がされている。
これは、何かというと、ホストのディレクトリを指定しないけど、ホスト上にデータを永続化してねっていう意味。
で、どこに永続化してるかというと、docker inspectコマンドで確認できる
docker inspect wordpress
〜〜〜色々表示ある
"Mounts": [
{
"Name": "eff35da0504f6b7892b4b1f2ee9526784749d0f6028c8d459bcc908874ca0a3b",
"Source": "/mnt/sda1/var/lib/docker/volumes/eff35da0504f6b7892b4b1f2ee9526784749d0f6028c8d459bcc908874ca0a3b/_data",
"Destination": "/var/www/html",
"Driver": "local",
"Mode": "",
"RW": true
}
〜〜〜
このMountsのSourceの場所が、VM上のディレクトリ。
コンテナの/var/www/html
= VMホストの /mnt/sda1/var/lib/docker/volumes/eff35da0504f6b7892b4b1f2ee9526784749d0f6028c8d459bcc908874ca0a3b/_data
VMにログインする
docker-machine ssh default
でもって、先ほどの、ディレクトリに移動しようとするが、エラーになる。 /mnt/sda1/var/lib/docker/volumesの権限が足りねえ
ls -la
drwx------ 11 root root 4096 Sep 21 14:25 volumes
権限追加する。
cd /mnt/sda1/var/lib/docker
sudo chmod 755 volumes
ls -la
drwxr-xr-x 11 root root 4096 Sep 21 14:25 volumes
これで、OK。
中身を除く。
cd volumes/eff35da0504f6b7892b4b1f2ee9526784749d0f6028c8d459bcc908874ca0a3b/_data/
ls
index.php wp-config-sample.php wp-login.php
license.txt wp-config.php wp-mail.php
readme.html wp-content/ wp-settings.php
wp-activate.php wp-cron.php wp-signup.php
wp-admin/ wp-includes/ wp-trackback.php
wp-blog-header.php wp-links-opml.php xmlrpc.php
wp-comments-post.php wp-load.php
あるある。
で、MAC側にディレクトリ作って、さっきのファイル達をコピーする。
mkdir -p /Users/ryoben/dev/docker/wordpress/
cp -r /mnt/sda1/var/lib/docker/volumes/eff35da0504f6b7892b4b1f2ee9526784749d0f6028c8d459bcc908874ca0a3b/_data /Users/ryoben/dev/docker/wordpress/
ローカルにやってきた。
コンテナに、ローカルのディレクトリをマウントする
今動かしてたコンテナは用無しなので、さよなら
docker stop wordpress
ローカルのディレクトリをマウントするコンテナを立ち上げる
docker run --name wordpress2 --link mysql -p 8080:80 -v /Users/ryoben/dev/docker/wordpress:/var/www/html -d wordpress
nameオプションで、名前かぶるとエラーになるので、名前をwordpress2にしてます。同じ名前にしたい場合は、先に
docker rm wordpress
を実行して、コンテナを削除しとくこと。
これで、再度ブラウザで、192.168.99.100:8080 にアクセスすると、wordpressの画面が開いた。
確認
ほんとにローカルのファイル見てんのか?って、気になったので、ローカルのindex.phpの内容を、phpinfo(); に変えてみる。
確かに変わってる。
感想
- とりあえず、vagrantで作ってた開発環境を置き換えることはできそう。
- ただ、vagrantを置き換えるメリットは、あんまり感じないのが正直なところ。開発環境だけ置き換えるってのはメリット少ないのかな。いや、早いけど。
- 他の端末にも開発環境を展開する時は、docker以外に、ローカルにフォルダを作って、gitでソース持ってきて、コマンド叩くって手順が必要。もっといい方法があるんだろうな、きっと。
- mysqlのデータを本番から持ってきてimportするとかは、docker cpとかでファイルコピーして、コンテナ内でmysqlコマンドでサクッとできんのかな。今度確かめる。
- シルバーウィーク終わってもた・・・。
初めてDocker触ってwordpressを動かすまで
そろそろDocker触っとかなきゃダメだろ。
ということで、シルバーウィークなので、触ってみた。
目的
Dockerでwordpressの画面を表示させるまで
インストール
Docker Toolboxをインストールする。
チュートリアルやる
英語だが、簡単なので、一通りやる。
- Docker Imageとコンテナの違いを学ぶ
- Docker Hubにpull/pushの仕組みを知る
wordpressの環境を構築する
サーバごとにコンテナ分けた方がスマートなので、mysql(DB)とwordpress(AP)の2つのコンテナを作成する。
mysqlの環境を構築する
mysqlイメージを取得する
docker pull mysql:5.7.8
mysqlコンテナを起動する
docker run --name mysql -e MYSQL_ROOT_PASSWORD=pass -d mysql:5.7.8
wordpressの環境を構築する
wordpressイメージを取得する
docker pull wordpress
wordpressコンテナ起動する
docker run --name wordpress --link mysql -p 8080:80 -d wordpress
--link mysql でmysqlコンテナと勝手にリンクしてくれる。
-p でコンテナの80をホスト側の8080にフォワードする。(これがないとブラウザでつなげにいけない)
つなげる
dockerが動いてる、virtualboxのipを確認する。
$ docker-machine ip default
192.168.99.100
ブラウザから、192.168.99.100:8080に接続する。
動いた。
ちょうどwordpressでサイト立ち上げたいから、開発環境として使ってみて色々学んでみようと思う。
今後の課題
- データの永続化(デフォルトだと、コンテナの中にデータが保存されているので、コンテナ削除するとデータが消える)
- docker-composeで、複数コンテナ管理