LoginSignup
6
6

More than 5 years have passed since last update.

Swift 3 で Kitura のサーバアプリケーションを動かすには

Last updated at Posted at 2016-06-25

注意 : Swift の仕様がまだ全然安定してないので README に書いてある通りの環境を用意するのが基本となります。ここに書いてあることはすぐ風化する恐れがあります。

Swift を勉強したかったのですが、アプリを作るのは飽きてしまったので、Kitura をやってみることにしました。
現在 Kitura の master ブランチは Swift 3 の最新版に対応済みとなっていて、今から Swift を勉強するなら 3 だろうということで、これを頑張って動かすことに。

ビルド環境

コミット 55e73b24 の README に書いてある docker のやり方は現時点では動きません(docker の image が更新されていない)
README からビルドに必要なものを読み取り、自作します。

  • Swift は DEVELOPMENT-SNAPSHOT-2016-06-06-a version of Swift 3 trunk (master)
    • 依存パッケージは公式ページで確認
    • ubuntu は 14.04 か 15.10
  • Kitura の依存パッケージは README で確認
  • libdispatch なるものが必要。
    • こいつのコミット 7b5b57c3 のインストール手順では Initial focus is on ubuntu 15.04. と書かれている。
    • こいつもまた複数のパッケージに依存する

ということで、まとめると ubuntu 15.10 に Swift 3 DEVELOPMENT-SNAPSHOT-2016-06-06-a と libdispatch をインストール すればビルドできそうです。

docker で環境作成

上記のビルド環境はおそらくガンガン変わっていくのが予想されるので、下記のような感じで docker で作成することにします。

FROM ubuntu:15.10

RUN apt-get update -y && apt-get install -y \
  curl git build-essential \
  clang libicu-dev \
  autoconf libtool libkqueue-dev libkqueue0 \
  libcurl4-openssl-dev libbsd-dev libblocksruntime-dev \
  pkg-config systemtap-sdt-dev

RUN curl https://swift.org/builds/development/ubuntu1510/swift-DEVELOPMENT-SNAPSHOT-2016-06-06-a/swift-DEVELOPMENT-SNAPSHOT-2016-06-06-a-ubuntu15.10.tar.gz > /tmp/swift.tar.gz && \
  tar -xvzf /tmp/swift.tar.gz --directory / --strip-components=1 && \
  rm -f /tmp/swift.tar.gz

ENV PATH /usr/bin:$PATH

RUN git clone --recursive -b experimental/foundation https://github.com/apple/swift-corelibs-libdispatch.git && cd swift-corelibs-libdispatch && sh ./autogen.sh && ./configure --with-swift-toolchain=/usr --prefix=/usr && make && make install

サンプルをビルドして実行してみる

下記コマンドで swift の環境を起動します。 8090 ポートにサーバが立つので予め開けておきます。

docker build -t swift-kitura .
docker run --privileged -p 8090:8090 -i -t --name mykitura swift-kitura /bin/bash

サンプルは Kitura-Sample を動かしてみます……が、 現時点では master にあるものは SwiftyJSON が古いらしくビルドが通りません。 develop ブランチがあるのでそちらを clone して試しましょう。

git clone https://github.com/IBM-Swift/Kitura-Sample -b develop && cd Kitura-Sample
make run

Starting an HTTP Server on port 8090... と表示されてから、 localhost 8090 にアクセスして下記のように表示されれば成功です。

image

以上となりますが

お察しの通り、 Swift の勉強はまだ一切できておりません。 Docker のいい勉強になりました(開き直り

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6