DeisでWordpressをDeployする


Deisについて

オープンソースて作られた、Herokuのワークフローを実現するオープンソース。コンテナーのデプロイ、Git pushによるデプロイが可能。ベースはCoreOS/etcd/fleetで作られている。

ローカルでWordpressを動作させる

boot2dockerの起動

$boot2docker up
$(boot2docker shellinit) 

WordpressコンテナーとMySQLコンテナーの起動

$ docker run --name wordpress-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql 
fcb2522174ccbc15c8a6ea585d75da5833a21d6a890e019c94e384d87db500a8

$ docker run  --link wordpress-mysql:mysql -p 8080:80 -d wordpress
51a289307895082b1c093e3bef150a27767ed86f81273c8d745080848283b1d7

$ boot2docker ip

http://${boot2docker ip}:8080 にアクセスすると、動いている。

Dockerhub にプッシュ

$  docker ps                                                                                                                                           
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
51a289307895        wordpress:4         "/entrypoint.sh apac   2 minutes ago       Up 2 minutes        0.0.0.0:8080->80/tcp   sick_pasteur        
fcb2522174cc        mysql:5             "/entrypoint.sh mysq   2 minutes ago       Up 2 minutes        3306/tcp               wordpress-mysql     

$  docker commit 51a289307895  quay.io/ukitazume/wordpress                                                                                             
1a3e13c9e5c84c486eb2f8f3a0ef19ac1c35c52585b9087d20565dca4cd79a17

$  docker push ukitazume/wordpress 
...
1d2897283c7d: Image successfully pushed 

Deisにアプリケーションを作成

  • MySQLを用意しておく(手抜き)

アプリケーションの作成

$ mkdir wordpress 
$ cd wordpress
$ deis create
Creating application... done, created wordpress

WordPressにDB接続情報を設定

$ deis config:set WORDPRESS_DB_HOST=mysqlurl.com:3306
$ deis config:set WORDPRESS_DB_USER=admin
$ deis config:set WORDPRESS_DB_PASSWORD=password

設定された情報を確認

$ deis config:list                                                                                                                                     
=== wordpress Config
WORDPRESS_DB_HOST          mysqlurl.com:3306
WORDPRESS_DB_PASSWORD      password
WORDPRESS_DB_USER          admin

Deploy

$ deis pull ukitazume/wordpress:latest
Creating build...  .o. 
Creating build... done, v6

確認!

$ deis open

ブラウザが開きます!

スケール

感想

  • Wordpressのimageは大きすぎる
  • WordPressのassetsはs3などに上げる必要がある