0
0

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.

MacMini(Mid 2007)上のVirtualBoxで稼働させているCentOSの上でdocker経由でSwiftを使う

Posted at

はじめに

最近作るスクリプトはperlからpythonに切り替えるなどしているわけですが、ふとSwiftの開発なんかもやってみたいなと思っているカピバラおじさんです。
新しいMacなども欲しいわけで、口座に残っているいい感じの金額を見て「か、買える」と一瞬だけ思ったけれど、これは子カピバラの学費・・・・これに手をつけたら今度こそ・・・・

「カピバラ家では粗大ごみを車で持ち込んで処分するんだけど、いつもよりによって一番重いのを出さずに持ち帰ってしまうんだって」
「なんで?」
「そりゃ、帰りに車を運転する奴がいなくなるからだろ」

はいお客さん、これ、カピバラジョークね、笑うところ。

・・・・笑えない・・・

それでも衝動買いの起爆剤のため勉強のためにSwiftを触ってみたいという気持ちは変わらず、何らかの形で動かしてみたいと調べてみるとdockerのイメージが提供されているとのことなので、トライしてみることに。

環境

手元にあるMacMiniはMid 2007。メモリは増やしているとはいえ、2GB。この上で動かしているVirtualBox上のCentOSへの割り当ては762MB。(おそらく768MBにしたかったんだと思うけど、酔っぱらっていたに違いない)
dockerはインストール済なので、インストールについては割愛。適当にyumしてあげてください。

dockerでSwiftを使えるようにするまで

イメージのダウンロード

$ docker pull swiftdocker/swift

しばらくダウンロード表示が続き、プロンプトに戻る。
確認してみよう。

$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
docker.io/swiftdocker/swift   latest              466addff05d1        7 weeks ago         1.299 GB

コンテナの作成~起動

ダウンロードしたイメージを利用してコンテナを作成し起動してみる。

$ docker run  -i -t --privileged --name swift swiftdocker/swift:latest /bin/bash
root@921f2ed79fe8:/#

2行目の表示はdocker上のbashプロンプト。921...は、コンテナID。

触り始める前に、やっておいた方がいいこと

vimのインストール

今回使用したイメージにはvimが入っていない。
じゃ、インストールしておこう。

# yum install vim
bash: yum: command not found

え・・・と、数秒固まったが、そういえばこれはいつものCentOSではなく、ubuntu。慌てず騒がず(←慌ててたじゃん)

# apt-get update
# apt-get install vim

exitでコンテナを停止させないために

コンテナ内でexitしてしまうとコンテナが停止してしまい、次に使う時にはdocker start docker attachの2オペレーションが必要になる。再起動を必要とせずに抜けるためには、[Ctrl]+[P], [Ctrl]+[Q]で抜けるのが正しいらしい。
このキーアサインを変更することはできるようだが、exitで悲しい目に遭うことには変わらない。
どうしよう。
カピバラオヤジは黙ってvimを起動し、~/.bashrcに下記のラインを追加。

alias exit='echo "to exit, press [Ctrl]+[P], [Ctrl]+[Q]"'

これでよし (エ ´ \

それでは、おなじみの「あれ」を。

プロジェクト作成

# mkdir myproject
# cd myproject
# swift package init --type executable   # パッケージの初期化

これで、下記のようなファイルとディレクトリが作成される。

myproject
  ├ Package.swift
  ├ README.md
  ├ Sources
  │   └ myproject
  │       └ main.swift   # とりあえず、これがメインとなるソース
  └ Tests

初期状態でのmain.swiftは、

print("Hello, world!")

となっているので、これを

print("Hello, Capybara world!")

に変更する。(もちろん、全く必要のない変更です)

コンパイル~実行

# swift build
Compile Swift Module 'myproject' (1 sources)
Linking ./.build/x86_64-unknown-linux/debug/myproject

これで、myproject直下の./.build/x86_64-unknown-linux/debug/myprojectに実行モジュールが出来上がり。

# ./.build/x86_64-unknown-linux/debug/myproject
Hello, Capybara world!

とりあえず、動くようになりました!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?