サーバーサイド 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
を実行して、上手くいかないと悩んでいた…。