サーバーサイド Swift フレームワークである Perfect を Docker で動かせるようにした
サーバーサイド Swift フレームワークであるPerfectを Docker で動かせるようにした。
作成した 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へアクセスすると次のように表示される。

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