した業務アプリを手軽に作るのに便利なんですよね。プログラミングは必要ないんだけど、やっぱりシステムの知識がある程度ないと使いこなすのは難しいですよね。データの管理をしていたりします。すると欲しくなりますよね。Libraryせっかくなので、必要な方に使ってもらおうと思って、公開しました〜。README.mdをご覧ください。それだけだと寂しいので、簡単なサンプルスクリプト貼っておきます。ライブラリを開発するにあたっていくつか工夫した点を書いておきます。ツールでやるのが良いです。用意してくれています。これ自体は悪くはないですが、やはりローカルで自分の好きな環境で開発したいですよね。ディプロイして動作確認をするやり方をとりました。プロジェクトにどうやってディプロイするかです。経由で書き換えが可能です。ディプロイするツールがいくつか公開されています。node-google-apps-scriptを使いました。権限を持った認証キーを使えば、ローカルで編集したファイルをコマンドラインからディプロイできるようになります。GasTというライブラリを使いました。ユニットテストのライブラリはいくつかあるのですが、継続的にメンテナンスされているものがなく、高機能なものよりもシンプルで安定的に使えそうなものを選びました。こんな感じのユニットテストを実行するための関数を定義しておきます。追加すれば勝手に実行されるテストとして登録される仕組みです。実行すれば、登録したテストが実行されます。テストの実行結果はログで確認できます。最後の行で、82のテストを実行して、失敗が0だったのがわかります。ユニットテストの実行のところは、コマンドラインで完結してなくてブラウザにアクセスしないといけないのでちょっとかったるいです。環境でしか実行できないので、ある程度は仕方がないです。ログを受け取るサーバを立てれば、もう少し自動化できるんじゃないかと思います。使われてるコードチェックツールがそのまま使えます。コードチェックをするようにしました。ノンカスタマイズで使っています。APIトークンが必要になってきます。テストプログラムといえども、この固有値をプログラムの中には埋め込みたくないですよね。保存するようにしています。アクセスできるクラスが準備されているので簡単に取り出すことができます。ライブラリ作ったTweetコメントを書くもっと読む2017-06-07dockerあれこれインフラDockerを使う上で、少し解りずらいけど理解したらDockerと少し親しくなれるようなところをピックアップしてみようと思います。}]こんな感じになります。gitをインストールした内容の2つ分入っていることが解ります。これで何となくイメージの内容が解るようになりましたね。イメージ間で共有されるというところを見ていきます。"sha256:bfd51f3d31f5ed500e02975f8207a2f1f604ecd85126da84614fbe93e8d7aed8"]の部分です。同じで、2つめの値は違うということが見ると解りますね。内容ということが解ると思います。これでファイルシステムの内容が共有されるということが解りましたね。build時のキャッシュについて親イメージから辿っていき、命令文が完全に一致するものがあれば、新しくイメージを作らずにそれを使うbuild時に既存のイメージを流用できるようなケースは、新しいイメージを作らずに既存のイメージが流用されます。出ていて、イメージのハッシュ値も一致していることが解ります。このようにハッシュが使用されるルールは下記です。親イメージから子に向かって処理は進められ、対象レイヤーの親イメージが持つ子イメージの中で、コマンドの内容が完全に一致しているものがあればそれが使用されます。命令の場合は、ファイルの中身のチェックサムが一致するとキャッシュが利用されます。COPY命令の場合は、Dockerfile上の命令は変わっていなくても、ファイルの内容が更新された場合はキャッシュは使用されずに新しくイメージを作ってくれます。ついてCMDとENTRYPOINTって解りにくいと思うので説明したいと思います。