話題のSwift製WebフレームワークKituraをVagrantで手軽に試す
皆さんこんばんは。
腰を気にしていたら背中がやられてきたDayBySayです。
本日は今話題のSwift製WebアプリケーションフレームワークのKitura
の開発環境を作ってみたいと思います。
概要
Kitura
はIBMとAppleのパートナーシップのもと制作されたらしいWebアプリケーションフレームワークです。
さらにIBM BlueMixというPaaSが完全対応しており、クライアントもサーバもSwiftという開発環境を作るにはもってこいであります。
私はまだ使ったこと無いですけど、この記事を読む限り、Push通知用のサーバも簡単に作れるらしい?
料金体系が計算ムズイ系だけれども、どうもPush通知回りは無料枠もあるっぽい。
Parseも死んじゃったし、色々大変だろうけどIBM Bluemixにもちょっとは期待してみよー。
ということで、話を戻すとIBM Blluemix上でも利用できるKitura
を手軽に試す方法について書いていきます。
環境構築
READMEを見るとわかりますが、開発環境としてLinux
、OSX
、Docker
、Vagrant
と、いたれりつくせりで色々用意してくれてます。
個人的な都合により、今回はOSX上でVagrant
を利用する感じで進めたいと思います。
事前準備
VirtualBoxとVagrantを入手します。
開発環境構築
まずは適当な場所にKitura
をクローンします。
$ git clone git@github.com:IBM-Swift/Kitura.git
中身はこんな感じです
$ ls -la total 120 drwxr-xr-x 17 t-sei VOYAGEGROUP\Domain Users 578 3 1 01:57 . drwxr-xr-x 44 t-sei VOYAGEGROUP\Domain Users 1496 3 1 01:57 .. drwxr-xr-x 13 t-sei VOYAGEGROUP\Domain Users 442 3 1 01:57 .git -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 16 3 1 01:57 .gitignore -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 1073 3 1 01:57 .travis.yml -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 649 3 1 01:57 .travis.yml.backup drwxr-xr-x 7 t-sei VOYAGEGROUP\Domain Users 238 3 1 01:57 Documentation -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 10174 3 1 01:57 LICENSE.txt -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 878 3 1 01:57 Makefile -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 1405 3 1 01:57 Package.swift -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 8197 3 1 01:57 README.md drwxr-xr-x 3 t-sei VOYAGEGROUP\Domain Users 102 3 1 01:57 Sources drwxr-xr-x 3 t-sei VOYAGEGROUP\Domain Users 102 3 1 01:57 Tests -rwxr-xr-x 1 t-sei VOYAGEGROUP\Domain Users 1161 3 1 01:57 buildTests.sh -rwxr-xr-x 1 t-sei VOYAGEGROUP\Domain Users 1510 3 1 01:57 build_osx.sh -rwxr-xr-x 1 t-sei VOYAGEGROUP\Domain Users 667 3 1 01:57 runTests.sh -rw-r--r-- 1 t-sei VOYAGEGROUP\Domain Users 3097 3 1 01:57 vagrantfile
次に、Vgarant
の環境を作ります... と言いたいところですが、実は2016/3/1
現在、Kitura
が提供しているVagrant
環境は壊れています。
こちらのPR見るとわかりますが、どうもlibdispatch
回りで不整合が起きてしまっているのが原因のようです。
ということで、今回はこのPRの元になっているブランチを利用してVagrant
の開発環境を作りましょう。
$ git remote add cjwirth git@github.com:cjwirth/Kitura.git $ git fetch cjwirth remote: Counting objects: 43, done. remote: Compressing objects: 100% (43/43), done. remote: Total 43 (delta 25), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (43/43), done. From github.com:cjwirth/Kitura * [new branch] develop -> cjwirth/develop * [new branch] fix-vagrant -> cjwirth/fix-vagrant * [new branch] master -> cjwirth/master * [new branch] travis-ci-tests -> cjwirth/travis-ci-tests $ git co fix-vagrant Branch fix-vagrant set up to track remote branch fix-vagrant from cjwirth. Switched to a new branch 'fix-vagrant' $ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Fixed port collision for 22 => 2222. Now on port 2200. ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... (中略) ==> default: Compiling Swift Module 'KituraSample' (1 sources) ==> default: Linking Executable: .build/debug/KituraSample ==> default: make[1]: Leaving directory '/home/vagrant/Kitura'
ここまでこれれば準備完了です。
サーバを立てる
まずはVagrant
環境に入ります。
$ vagrant ssh Welcome to Ubuntu 15.10 (GNU/Linux 4.2.0-30-generic x86_64) * Documentation: https://help.ubuntu.com/ Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud
そしておもむろに下記コマンドを叩きます。
$ Kitura/.build/debug/KituraSample INFO: spiListen(_:port:) /home/vagrant/Kitura/Packages/Kitura-net-0.2.0/Sources/KituraNet/HttpServerSpi.swift line 46 - Listening on port 8090
これでVagrant
環境にサーバが立ちました。
初期設定をいじっていなければ、ホストのlocalhost:8090
がゲストの8090
にフォワーディングされる設定になっています。
確認してみましょう。
$ curl localhost:8091 You're running Kitura
成功っぽい! 環境ができたので今日はここまで。
まとめ
Kitura
の提供しているVagrant
の開発環境は現状壊れているので辛い。