Web雑記帳 atsu666


Docker + a-blog cms

December 25 Thu 2014 | 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年に引き続き埋まりましたね。 インフルにかかってしまった自分が一番不安でしたがほっとしました。(ホントウにヨカッタ。。)

それではいいお年を!


tag : ablogcms 環境 vagrant