TEMPer の docker image を作ってみた備忘録

Photo by hyt.

そのまんまです.docker の練習のために,格安 USB 温度計 TEMPer の docker image を作ってみました.

なお,docker のインストールについては,

CentOS7 に docker を入れる備忘録です.今回はホ...

を,USB 温度計 TEMPer については,

TEMPer 備忘録です. 酷暑です.部屋の温度がヤバい...

をご覧ください.

あと,今回は珍しく作ったものを dockerhub で公開しています.必要な方は,

にありますので,docker pull して下さい.なお,USB ID が 413d:2107 のもの用です.あと,ほんとは dockerhub の description に色々書くべきなんだとは思いますが,英語で書くの面倒なので,これはおいおいやることにして,どんな風に作ってあるかはこの blog に「日本語で」書いておきます.

dockerhub には他にイメージあるんじゃないの?

はい.他に2つ見つかります.しかも,詳しい説明付きのものが

にあるんですが,よく読むと QNAP docker container station 向けだそうで,実際,CentOSでは動きません.あと,もう一つ見つかるんですが,これは使い方が全くわからない…….

と言うことで,まぁ,地味に使ってくれる人もいるかもしれない,と思い公開することにした訳です.もちろん docker hub の使い方を知りたかったというのもあります.

docker image の概要と使い方

ベースは alpine linux です.容量は7MByteくらい.

Dockefile の公開ではなく,イメージを公開した理由は簡単で,docker image を小さくするために,予めコンパイルしておいた実行ファイルと最低限のライブラリをまとめて /usr/local 以下に展開したからです.

凝ったことは何もしてません.単にターミナルに温度を表示するだけの作りです.docker の hello-world と同じようなものだと思ってください(hello-world の方が圧倒的に小さい……どうやって作ってるんだろう……).

なお,動作 x86 な CentOS7 でしか確かめていませんので,悪しからず.

使い方は,まずは docker image を取ってきて,実行します.

一度実行すれば,2回目からは,

とすれば再び実行されます.2回目以降も docker run … で実行できますが,これをやると停止されたスナップショットが大量に溜まって面倒なので,スナップショットを再起動してやる方が良いと思います.

なお,docker の image って,どちらかというと Web server とか動かすことの方が多いんじゃないかなと思いますし,たかだか実行ファイル1個のために作るようなものじゃない気もするんですが,レシピを見るとわかる通り,この TEMPer の実行イメージ作って実行するって結構面倒で下手をするとかなり環境が汚れるんです.だから docker を使うことで環境を汚さずに済むってのがメリットなんじゃないかと.あと 7M とあまり大きくないのも docker で作っても良いんじゃないかなと思った理由ですね.

レシピ

作り方は以下の通り.まずは,TEMPer の温度を読み込んで表示する temperd っていうプログラムを alpine linux 上でコンパイルしました.注意点は以下の3つです.

  • hidapi-dev をインストールするために testing のリポジトリを追加した.
  • /usr/local/lib64 は alpine linux は標準だと読まないので,/usr/local/lib を消して /usr/local/lib64 から /usr/local/lib にシンボリックリンクを張った.
  • hidapi-dev でインストールされるライブラリを /usr/local/lib64 にコピーして,docker image 作るときは展開するだけで使えるようにした.

なお,下の2つは手抜きのためです.

次は docker image を build するための Dockerfile の作成です.今回は以下の内容で作りました.

次は docker image の作成です.カレントディレクトリに Dockerfile を配置し,temper.tar.gz を files ディレクトリ以下に配置した上で,

の通り実行した結果,docker image として temper が出来上がりました.試しに実行してみた様子は以下の通りです.

最後に dockerhub への公開です.まず,以下のサイトから,dockerhub に Sign Upして,

次の通り docker image を docker hub に登録しました.

なお,サイトには最低限の解説を入れましたが,解説部分の文法は Markdown で書くみたいですね.

と言うことで,まぁ,手抜きですが,何となく docker の使い方が少し分かったような気がします.

以上!

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement