6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Server Side SwiftをDockerコンテナ上で動かしてみる

Posted at

Swiftがインストールされているイメージを探す

20180104184734.png

で対象のSwift Versionを見つける。swiftで検索するといくつかのイメージが見つかる。
今回はdocker-swiftで提供しているイメージを使う。

Dockerfile

サンプルプロジェクトはVapor + SwiftPMで構成されているので、各種設定ファイルをコンテナ上でコピーします。

FROM swift:4.0.3
USER root
RUN mkdir -p /server
COPY ./Config /server/Config
COPY ./Sources /server/Sources
COPY ./Makefile /server/Makefile
COPY ./Package.resolved /server/Package.resolved
COPY ./Package.swift /server/Package.swift
ENV PORT 9000
EXPOSE 9000
WORKDIR /server
RUN make build
CMD ["make", "run"]

サンプルプロジェクトは以下にあります。
https://github.com/Nonchalant/VaporProtobufSample

Swift Core Library

今回のベースイメージにしたswift:4.0.3はubuntuで動いています。macOSとLinuxOSで動くSwift Core Libraryは別物です。

LinuxOS用のFoundationは実装途中なので一部使えない機能((URLSessionなどが一部使えません。実装ステータスはStatus.mdで確認できます))があるので、macOSで開発する際も時々LinuxOSで動くDockerコンテナで確認するとよいと思います。実装されていない機能はCライブラリなどで代替するしかなさそうです。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?