はい!今やってます!

Work Pertly, Live Idly

Phoenix × Elixir × MariaDB × Dockerでjsonを返すAPIを開発する (2日目 : 開発環境構築編)

前回のDocker環境構築 ( Phoenix × ElixirでAPIを開発する (1日目 : Docker環境構築編) - はい!今やってます! ) に引き続いて、コンテナ内で開発環境を構築していきます。

Linuxの環境確認

uname -a

Localeの設定

localectl set-locale LANG=ja_JP.utf8
localectl status

wgetをインストール

yum install wget

Erlangを落とす

wget http://www.erlang.org/download/otp_src_18.2.tar.gz
tar zxvf otp_src_18.2.tar.gz
cd otp_src_18.2

※バージョンは適宜確認して最新のものを落とすようにして下さい。

依存関係ライブラリをインストール

yum install -y git gcc openssl openssl-devel ncurses ncurses-devel unixODBC unixODBC-devel gcc fop inotify-tools java-1.7.0-openjdk-devel gcc-c++

コンパイル&確認

./configure
make
make install
erl

Elixirのインストール

cd /usr/local/lib
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make clean test
vi ~/.bashrc
 > PATH="$PATH":/usr/local/lib/elixir/bin/
source ~/.bashrc
iex

Hexインストール

mix local.hex

Node.jsをインストール

yum install epel-release
yum install nodejs npm --enablerepo=epel
npm install -g n
n stable

Phoenixをインストール

git clone https://github.com/phoenixframework/phoenix.git && cd phoenix && git checkout v1.1.0 && mix do deps.get, compile

※バージョンは適宜最新のものを利用して下さい。

ライブラリローディングようのライブラリ(?)

yum install inotify-tools

テストアプリケーション作成

cd /usr/local/lib/elixir/phoenix/installer
mix phoenix.new /var/www/${App_Name}

MariaDBを使用したいので、実際はこのコマンドを実行しています。

mix phoenix.new /var/www/${App_Name} --database mysql

MariaDBインストール

yum -y install mariadb-server

サーバ起動

cd /var/www/${App_Name}
vi config/dev.exs
 > (編集内容 : Portを80番を指定)
mix phoenix.server

定義されているルーティングの確認

mix phoenix.routes

ブラウザからアクセス

http://${Docker_Ip}:8080/

Docker Image(api)をDocker Hubで公開

docker commit api uedayuji/phoenix
docker images
docker login
docker push uedayuji/phoenix

こちら(Docker Hub)にDocker Imageは公開しています。

今日はここまで

こちらの記事(Phoenix × ElixirでAPIを開発する (3日目 : DB環境構築編) - はい!今やってます!)に続きます。