Life Literacy

エンジニアの生活の質を向上させる方法について整理中

SwiftをDockerで使う簡単な方法

スポンサード リンク

過去に、swiftをubuntuで利用する方法についてまとめた記事を書いたが、 Dockerを利用したら、より簡単そうだったので試してみた。

最近、Dockerについて顧客から雑談がてらどんなものか聞かれる頻度も増えてきており、 今後開発で使うことが多くなりそうなので知っておいて損はないだろう。

Dockerが入ったLinuxの準備

DockerはLinuxの機能を利用してコンテナを作っているらしいので、Linuxを準備する。 僕は、Vagrant + VirtualBoxを利用することにした。Vagrantfileも載せておくので、この記事の通りにやれば、おそらく問題なくインストールできるはずである。

最初からDockerやswiftが入ったboxを用意すれば、より簡単なのだが、勉強も兼ねて一手間かけている。

Vagrantfile作成

$ vagrant init
$ vi Vagrantfile

Vagrantfileに、以下を記述

Vagrant.configure(2) do |config|
  config.vm.define "swiftdocker" do |node|
    node.vm.box = "bento/ubuntu-16.04"
  end
end

vmの起動とログイン

以下のコマンドでVMを起動してログインする。vagrant upで多少時間がかかるかと思う。

$ vagrant up
$ vagrant ssh swiftdocker
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-75-generic x86_64)
vagrant@vagrant:~$

これで、Linux環境はできた。

Dockerインストー

新しいツールを利用するときはいつも環境構築ではまってしまうため、それなりに時間をかける覚悟をしていたのだが、次のコマンドを実行するだけで簡単にインストールできてしまった。

$ curl -fsSL https://get.docker.com/ | sh
$ sudo usermod -aG docker vagrant

最後にvagrantユーザをdockerグループに所属させることによって、sudoを付けなくても、dockerコマンドを利用可能にしている。 これでDockerインストール完了。

swiftインストール済のDockerイメージを利用してコンテナを起動

ここからがDockerの便利なところ。

普通ならswiftを利用するために必要なパッケージ類をインストールする作業が必要となるが、 それらの作業を実施してDockerイメージとして固めたものが配布されているらしい。

今回は https://hub.docker.com/r/swiftdocker/swift/ のイメージを利用した。利用方法は簡単で次のdockerコマンドを実行するだけ。

$ docker run --privileged -i -t --name swiftfun swiftdocker/swift:latest /bin/bash

初回起動時は、Dockerイメージをダウンロードするため時間がかかるが、 次回からは即座に立ち上がってコンテナ上のbashに入った状態となる。

Hello Swift on Docker World!

REPL(Read-Eval-Print Loop)を要して、Swiftの文法などを簡単に試してみる。

起動は簡単で、以下のコマンドを打つだけである。

# swift
Welcome to Swift version 3.0.2 (swift-3.0.2-RELEASE). Type :help for assistance.

最後に、定番のHello Worldを実行してみる。

  1> let env:String = "Swift on Docker"
env: String = "Swift on Docker"
  2> print("Hello " + env + " World!")
Hello Swift on Docker World!
  3>

まとめ

今回初めてDockerを利用してみたが、swiftに限らず様々なツールの実行環境が簡単に構築できてしまい驚いた。 本格的に開発環境として利用できるかどうかは、もう少し調べてみないとわからないが、ちょっと試してみたいツールなどがあれば、まずはDockerで試してみるのが簡単でおすすめである。

lifeliteracy.hatenablog.com