KituraをDockerで動かしてみた。


Dockerコンテナ上でkituraのサーバーを動かす

今回はこちらのIBMさん謹製のDockerfileを使用します。
https://github.com/IBM-Swift/kitura-ubuntu-docker
このレポジトリをクローン。
(実際に必要なのはDockerfileと.shファイル)

git clone https://github.com/IBM-Swift/kitura-ubuntu-docker.git

レポジトリに移動し、Dockerイメージを作成します。

docker build .

次にDockerを起動。/bin/bashでコンテナ上のbashを開きます。
ついでにホストとコンテナの8090ポートを繋いでおきます。

docker run -p 8090:8090 -it ibmcom/kitura-ubuntu /bin/bash

あとは次のエントリに従いコンテナ上でファイルを作成。
KituraでHello Worldを表示させる

起動(コンテナ上)。

.build/debug/myFirstProject

これでDockerコンテナのサーバーにlocalhost:8090でアクセスできます。

ファイルの共有

作成するアプリケーションのファイルはgit等で管理したいので、
次にファイルをホストマシンと共有してみます。
先ほど使用したコンテナを一度破棄し、

docker rm コンテナのID

ホストにディレクトリを作成しておきます。

mkdir myFirstProject

そして次は以下のコマンドでコンテナを作成&起動。

docker run -p 8090:8090 -v $(pwd)/myFirstProject:/myFirstProject -it ibmcom/swift-ubuntu /bin/bash

-vオプションによりホストのmyFirstProjectディレクトリとコンテナ上のmyFirstProjectディレクトリを共有します。

コンテナ上でmyFirstProjectディレクトリに移動し、あとは先ほどと同様、

swift package init --executable

とすると、ホストマシンのmyFirstProjectディレクトリが以下のようになっていると思います。

myFirstProject
├── Package.swift
├── Sources
│ └── main.swift
└── Tests

あとは好きなエディタ(Xcode)でコードを書いて...
コンテナ上でビルド&Run

swift build
.build/debug/myFirstProject

めでたしめでたし。

おわりに

macでも快適にDockerが使えるようになり、またKituraも1.0を迎えたことで、
いよいよもってサーバーサイドSwiftへの期待が高まりますね。

参考

IBM-Swift/kitura-ubuntu-docker
KituraでHello Worldを表示させる
Getting Started