読者です 読者をやめる 読者になる 読者になる

サーバーサイド Swift フレームワークである Perfect を Docker で動かせるようにした

docker swift perfect

サーバーサイド Swift フレームワークである Perfect を Docker で動かせるようにした。

github.com

作成した Docker イメージは Docker Hub でも公開しているので、下記のように実行するとビルド済みのイメージが取得することができる。

$ docker pull holidayworking/perfect

この Docker イメージではサンプルアプリケーションである URL Routing を実行するようにしてあるので、

$ docker run -d -p 8181:8181 holidayworking/docker-perfect

を実行後に http://localhost:8181/foo/bar/baz にアクセスすると下記のように表示される。

f:id:holidayworking:20151227150946p:plain

Docker イメージを構築するときにハマった点はコンパイルした Perfect アプリケーションを実行する方法である。アプリケーションをコンパイルすると so ファイルが生成されるが、このファイルを perfectserverhttp を実行するディレクトリ内の PerfectLibraries ディレクトリにコピーするか、シンボリックリンクを貼ってある必要がある。最初はこれが分からなくて、サンプルアプリケーションのディレクトリ内で perfectserverhttp を実行して、上手くいかないと悩んでいた……