2にDockerを導入してみたくなったのでやってみました。2をDocker導入済みのimageで起動し、hubotをDockerコンテナとして動かしてslackに接続してみます。詳しくまとめられています。ポイントは以下のとおりです。ラズパイを起動するイメージファイルをダウンロードし、microSDに書き込みます。Linux、それぞれの導入手順について詳しく書いてあります。実際に導入した手順を紹介します。disk2s1microSDが/dev/disk2として認識されていることが分かります。microSDをアンマウントmicroSDにイメージを書き込むための準備として、microSDをアンマウントします。successfulアンマウントしてもmicroSDは挿したままにしておきます。Imageをダウンロードします。ダウンロードして展開します。イメージの書き込み展開したイメージをddコマンドで書き込みます。ifに書き込むイメージファイル名を指定し、ofに書き込み先のmicroSDのデバイス名を指定します。)bs=1mはイメージを書き込む際のブロックサイズを指定しています。ofは、各自のデバイス名に読み替えて実行してください。bs=1m書き込みには結構時間がかかりました。書き込みが終わるまでターミナルの表示が変化しないため動いてるのか不安になりますが落ち着いて待ちます。自分の場合は10分ちょっとかかりました。書き込みが終わったあとに再度microSDをアンマウントし取り外します。起動イメージの書き込みが終わったら、ラズパイに挿して起動してださい。起動するとDHCPでIPアドレスを取得します。キーボードとHDMIを接続して画面を見ながらログインしてもいいし、取得したIPアドレスを調べてSSHログインしてもよいです。Imageを起動して、ログインできたら、さっそくDockerを使ってみます。hypriot/rpi-busybox-httpdラズパイに振られたIPアドレスが192.168.1.20であれば、ブラウザからhttp://192.168.1.20:80/にアクセスするとこんな画面が見えます。簡単ですね!ラズパイでhubotのコンテナを起動する以降では、拙作ですが、ラズパイ上で動かすために調整したhubotをDockerfile含めて用意しましたので、これを使って解説します。Dockerのコンテナイメージをビルドするソースをクローンしたディレクトリにてイメージをビルドします。golang等、様々な環境をarm用にビルドしてくれています。ローカルで起動まずは、ローカルでhubotを起動します。PONG無事に動きました。このイメージはコマンドなしで起動すると、shellアダプタを呼び出すようにしてあります。次に、hubotを起動してslackに接続します。slackのhubot用トークンをHUBOT_SLACK_TOKEN環境変数に設定します。HUBOT_SLACK_TOKEN="your-hubot-slack-token"次に、コンテナ起動時のコマンドとしてslackを指定すると、slackアダプタでhubotが起動します。slack無事slackに接続できました。外部からhubotへアクセス外部からhubotにアクセスしたい場合には、EXPOSEされている8080ポートをホストの適当なポートに割り当ててください。5000番ポートからhubotにアクセスしたい場合は以下のとおりです。slackちなみに、最近のhubotのslackアダプタはwebsocketでslackに接続するため、hubot自体に接続する必要がなければ、ホスト側にポートを割り当てなくても大丈夫です。hubotの自動再起動slack等の外部サービスに接続している場合に多いのですが、hubotとslack間の通信が一定時間途絶えるとhubotが落ちてしまいます。そんなときのためにコンテナの再起動オプションを指定しておきます。コンテナ停止時の挙動はdockerのrestartオプションで以下のように制御できます。slack--restart=alwaysを指定すると、コンテナの終了コードを問わず再起動を試みます。入っていましたが、hypriotのwebサイトには、Raspi用にカスタムビルドしたdockerのパッケージがおいてあります。1.8.0-RC3で、以下のようにdpkgコマンドで導入して利用可能です。利用できるので便利です。fluend(192.168.1.10:24224)にログを送信できます。細かく解説されています。使うmattes/fugufuguというdockerのラッパーツールを日頃便利に使っています。docker-composeは複数コンテナを管理するような用途に、fuguはコンテナ単体での利用に向いています。使い方もdocker-composeと同様ですが、fugu.ymlにdockerコマンドのオプションと似たような内容を書いて使います。Driverを使いたかったので実装してプルリクを出したところマージしてもらえました。fuguはgoで実装されているので、armv7用にコンパイルすることでラズパイ上でも使えます。自前でコンパイルしたものをこちらに置いてますので、よかったら使ってください。以下のように、ラズパイに導入できます。/usr/local/bin/fuguおわりにARMアーキテクチャということで、大量にあるx86_64のDockerイメージが使えないというデメリットはありますが、hypriotのラズパイ用イメージを使うだけでも色々と遊べそうです。4日ほどしか運用していませんが、hubotについては問題なく動いているように感じます。今後、hubotとラズパイ用の各種センサとを組み合わせてみるのも面白そうです。重いアプリでなければ、ラズパイにコンテナとして起動しておけば、低消費電力で場所も取らず便利です。Node.js以外にも、いろいろと使ってみて、ノウハウがたまれば共有しようと思います。Slack接続用のhubotをBluemix上で動かし、hubotのデータ保存先としてRedisを使ってみた手順を紹介します。B...記事を読むReactでストップウォッチを作ってみたReactで簡単なストップウォッチを作ってみました。iOSのSafariで画像を表示すると、Exif情報に基づいて自動で画像の向きが補正されます。iOSのChr...記事を読むcommander.jsのversionオプションを自分好みにするcommander.jsはnode.jsを使ったコマンドラインツールを開発する際のコマンドラインオプション処理を簡単に記述できるモジュールで...記事を読むブラウザによる画像向き補正確認用ページ以下に表示されている画像の文字が左右逆だったり横倒しになっている場合、お使いのブラウザは画像をimgタグで表示する際に向きを補正しません。...記事を読むWordPressテーマSimplicityをアイキャッチ画像無しで使うSimplicityというシンプルで最近評判のWordPressテーマをブログに導入してみました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。