Docker + a-blog cms
はじめに
このエントリーはa-blog cms Advent Calendar 2014の25日目の記事になります。
a-blog cmsの開発環境は人それぞれ色々な環境があると思いますが、a-blog cmsの最初のハードル(最大のハードル?)としてインストールまでが面倒くさい事があります。今回はDockerを使ってローカル仮装環境に簡単にa-blog cmsを用意する事をやってみたいと思います。
下準備
今回はDockerを動かすにあたってデフォルトでdockerが入っているCoreOSをVagrantで環境を作りその上でDockerを動かします。
Vagrantfileの取得
$ git clone https://github.com/coreos/coreos-vagrant/
Vagrantfileの編集
後にブラウザで仮想環境にアクセスできるように、プライベートIPアドレスを振っておく。 ポートフォワーディングでもいいのですが、いちいちポートを指定するのが面倒くさいので今回はIPアドレスで設定。
Vagrantfileを開き以下の行を変更します。
ip = "172.17.8.#{i+100}" # config.vm.network :private_network, ip: ip # この行をコメントアウト config.vm.network :private_network, ip: "192.168.33.10" # この行を追加
ここで追加したIPアドレスが後にa-blog cmsを表示するものになります。
CoreOSの起動と接続
CoreOSを立ち上げCoreOSにSSH
$ vagrant up ... $ vagrant ssh CoreOS alpha (540.0.0) core@core-01 ~ $
CoreOSが立ち上がりコンソールに入れたと思います。 これでdockerが動かせるLinux環境が整いました。ここまでで下準備は終了。
Dockerfileのダウンロードとインストール
a-blog cmsのイメージを作る為のDockerfileを用意します。githubに公開したのでそれを利用。次にDokerfileからイメージを作成。またmysqlのイメージも持ってきます。
CoreOS上で作業 $ git clone https://github.com/atsu666/docker-acms.git $ cd docker-acms a-blog cmsのイメージを作成 $ docker build -t acms:latest . Docker Hubからmysqlのイメージを落とす $ docker pull mysql:latest
これでa-blog cmsのイメージとmysqlのイメージが用意できたのでコンテナを起動します。
CoreOS上で作業 rootのパスワードに root を指定して起動します。-dはバックグランドで起動 $ docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=root -d mysql --linkオプションを使用して今起動したmysqlのコンテナとリンク $ docker run --name acms --link mysql-server:mysql -p 80:80 -d acms:latest プロセスの確認 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4106500ffab6 acms:latest "./run.sh" Abount an hour ago Up Abount an hour 0.0.0.0:80->80/tcp acms c73dba76f96f mysql:5 "./entrypoint.sh" Abount an hour ago Up Abount an hour 3306/tcp mysql-server
正しく2つ起動できればOK。
a-blog cmsのインストール
ではブラウザでVagrantfielに設定したIPアドレスにアクセスしてインストールしましょう。
http://192.168.33.10/ にアクセス
成功していればインストール画面がでるはず。
後はボタンをポチポチして行きましょう! DBの設定も自動で入力されるようになっています。ただ一点、データベースを作成するチェックボックスが付いていないのでチェックをつけるように注意。
というわけで
無事a-blog cmsがインストールできました。今回初めてDockerfileを触りましたが面白いですね。軽量で記述も簡単な方だと思うので運用方法なども考えて使っていきたいです。(Dockerとは関係ないところでハマって結構時間かかりましたが。。)
今回は時間もなくとりあえず動けばいいだろ!って事で作ったので、もう少しましになるようにDockerfileのバージョンアップをしていきたいと思います。
a-blog cms advent calendar 2014も2013年に引き続き埋まりましたね。 インフルにかかってしまった自分が一番不安でしたがほっとしました。(ホントウにヨカッタ。。)
それではいいお年を!