Skip to main content

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