メインコンテンツへスキップ

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