以下技術系ポエムです。
ちょうど昨日、僕の持っている、
- Mac mini late 2012
に、OSX Yosemite を再インストールして、自宅サーバにすべく、 必要最低限のソフトウェアだけを入れて云々、という作業をしていたのですが、 その際に znc や lingr-ircd 等をホストするのに、
- fleet や etcd を使っていない CoreOS
を使用したので、その辺りの話をメモがてらまとめてみます。
1. 用意した環境
基本的には CoreOS の 2015 年 3 月末時点の stable を VMware Fusion 上で動かして、その際の環境構築の手順は、
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2104303VMware KB: Installation/Configuration of CoreOS vmx+vmdk image
を参考にしました。
それで、普通にクラスタとか組む場合には、 cloud-config
に fleet や etcd の起動設定を書くと思うんですが、
今回僕が作った環境では、その辺りをすっ飛ばして、
- ただの CoreOS だけ
という環境にしました。まー理由としては、 fleet とか etcd を動かすのが面倒だったのと、 あとクラスタを組むとかつもりが無いってのが大きな理由です。はい。
で、後はその素っ気ない CoreOS 環境に、
- znc
- lingr-ircd
を突っ込みました。
んで次の話。
2. 一部 Dockerfile を書き直した
んで、上記の様に構築した CoreOS の VM では、ストレージの容量が少なかったので、
その辺りをケチる為に、 lingr-ircd
に関してはコンテナのベースイメージに、
を使いました。
で、僕の場合、lingr-ircd
に関しては、 @mattn さんの、
go-lingr/lingr-ircd at master · mattn/go-lingr
という Golang ware を使っていたので、おもむろに上記リポジトリをチェックアウトしてきて
$ GOOS=linux go build .
を行ってクロスコンパイルし、下記の様な Dockerfile でコンテナをビルドしました:
FROM progrium/busybox EXPOSE 26667 ADD lingr-ircd /bin/lingr-ircd ENTRYPOINT [["/bin/lingr-ircd"]] CMD [[ "-help" ]]
で、あとは上記コンテナをサービスとして動かすために、CoreOS VM 上の
/etc/systemd/system/docker-lingr-ircd.service
に、
[[Unit]] Description=Lingr IRCD After=docker.service Requires=docker.service [[Service]] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill lingr-ircd ExecStartPre=-/usr/bin/docker rm lingr-ircd ExecStart=/usr/bin/docker run --name lingr-ircd -p 192.168.2.253:26667:26667 nyarla/lingr-ircd -apikey=XXXXXX ExecStop=/usr/bin/docker stop lingr-ircd [[Install]] WantedBy=multi-user.target
と言う感じのファイルを用意して、
$ sudo systemctl start docker-lingr-ircd.service $ sudo systemctl enable docker-lingr-ircd.service
という感じにコマンドを実行し、lingr-ircd をサービスとして登録しました。
3. 使ってみた感想
うん、まあ、結構楽でした。はい。
まーでも CoreOS は本来、クラスタを組んで云々するのが本領で、 こういった使い方はあんまりせんだろう、とは思うのですが、 今回の様な、単なる Docker host として使うのでも結構便利です。
で、あと今回、コンテナのベースイメージに、
を使ったわけなんですが、このベースイメージ、結構サイズが小さいので、 容量の少ない VPS などで単体の実行バイナリだけをコンテナに押し込みたい、 っていう時には結構重宝するかと思います。
あと上記ベースイメージの作者の方は dokku の作者でもある @progrium 氏なので、 信頼できるかどうかの云々も問題ないかと思います。
というコトで以上
技術系ポエムでした。
で、 AquaSKK を導入したという話 にも書いた様に、僕は OSX の IM を
http://aquaskk.sourceforge.jp/AquaSKK - 日本語を快適に
にした、と言っていたワケなんですが、 実は AquaSKK (というか SKK) にまだ慣れてない影響で、 この記事を書くのがめっちゃ大変でした。つーか変換ルールはなんとなく分かったけど、 Typo が多いせいで、入力効率がめっちゃ悪いという。あと、前の IM のクセとか残ってるし。 あとはまあ、最近ブログを書くのもさぼっていたので、その辺りの影響も有りそうではありますが。
という感じで今日というか今回の記事は以上です。 まあ大した中身もないのですが、昨日とかにそんなコトをしてたよって話でした。
終わります。まる