環境
今回はこの環境でやっていきます
- Mac OSX 10.11.3 El Capitan
- Ubuntu 15.10
- Swift 2.2.1
Dockerをインストール
Docker-ToolboxをインストールすることでDockerに必要なものをすべてインストールできます
正しくインストールできたか、確認してみます
$ docker-machine --version
バージョンが出ればOKです
Docker-machineを起動する
$ docker-machine start
$ docker --version
これでDockerが使えるようになります
DockerをいじってubuntuをDL
今回はubuntu15.10を使いますので、DockerHubにあるか確認して、imageをDLしてきます
$ docker run -it ubuntu:15.10 /bin/bash
このコマンドでubuntu 15.10をDLしてdocker上でubuntuを動かせます
コマンドの「ubuntu:15.10」ですが、「ubuntu」がimage名、「15.10」がタグ名です
「ubuntu:14.04」とすればubuntu14.04をDLできます
$ exit
でubuntuからログアウトできます
Swiftをインストール
swift.orgを確認しましょう
現時点(2016/5/2)で最新Releaseのswift2.2.1をインストールします
それではやっていきましょう!
※実際にはここの手順を踏んでいます
$ docker run -it ubuntu:15.10 /bin/bash
$ apt-get update
$ apt-get install wget
$ apt-get install clang libicu-dev
$ wget https://swift.org/builds/swift-2.2.1-release/ubuntu1510/swift-2.2.1-RELEASE/swift-2.2.1-RELEASE-ubuntu15.10.tar.gz
$ wget https://swift.org/builds/swift-2.2.1-release/ubuntu1510/swift-2.2.1-RELEASE/swift-2.2.1-RELEASE-ubuntu15.10.tar.gz.sig
$ wget -q -O - https://swift.org/keys/all-keys.asc | gpg --import -
$ gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift
$ gpg --verify swift-2.2.1-RELEASE-ubuntu15.10.tar.gz.sig
$ tar xzf swift-2.2.1-RELEASE-ubuntu15.10.tar.gz
$ export PATH=/swift-2.2.1-RELEASE-ubuntu15.10/usr/bin/:"${PATH}"
$ swift --version
swifのバージョンが出力されればOKです!
(PATHはbash_profileに書いてしまってもOKです)
swiftを動かしてみましょう!
が、しかし!!
$ swift
/swift-2.2.1-RELEASE-ubuntu15.10/usr/bin/lldb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
このように出てしまうので、ここの手順にはありませんが、以下をインストールしてswiftを動かしてみます
$ apt-get install libpython2.7
$ swift
/swift-2.2.1-RELEASE-ubuntu15.10/usr/bin/lldb: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory
これでいけるかとおもいきや同じようなエラーが出てしまいます。
これもインストールしてswiftを動かしましょう
$ apt-get install libxml2
$ swift
error: failed to launch REPL process: process launch failed: 'A' packet returned an error: 8
またエラーです。。。issueが解決済みなのでそれどおりやってみます
まずはdocker上のubuntuからログアウトしてコミットしてしまいましょう
$ exit
$ docker ps -as
$ docker commit xxxxxxxxxxxx ubuntu:swift-test
commitは[コンテナID] [保存名]です
コミットしたイメージを下記オプションを付けてコンテナ化します
$ docker run -it --privileged ubuntu:swift-test /bin/bash
$ export PATH=/swift-2.2.1-RELEASE-ubuntu15.10/usr/bin/:"${PATH}"
$ swift
動いた!!!
swiftは対話式でコードが書けるので、試しにいろいろやってください
ヘルプは「:help」、終了は「:exit」です
以上です。dockerのバグなんですかね?
少し厄介でした。