前回の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環境構築編) - はい!今やってます!)に続きます。