2015の2日目の記事です。みんな、使ってないのかな?そんなことないと思いますが、まあ、ノリで記事書く時期が終わって、みんな普通に使う感じになってるのなら良いですね。今年は、コンテナ部分だけでなく、その下のマシン群をあれこれするツールを使うフェーズだったように思います。使わないとして、ワークフローをあれこれしてきました。3兄弟で1番素直そうな子に仕事を頼んだら、この子が結構天然だったので、今日はそんなお話をしようと思います。Machine、Macの人が有利な感じするな。言及しているのが、このTweet。EC2のインスタンスを立てるのに、docker-machineを使い始めたのが、この頃。instancesの文字。instances対応は福音にな、るはずでした。「うーん、動かない......」githubのissue眺めたり、irc眺めたりで、見つけたのが、自分と同じ症状の報告。31日にやり取りが行われた後、その日の夜にはmasterの方に修正をコミットしたとゆーので、早速、野良ビルド。docker-machine0.3rcでスポットインスタンス対応にバグがある話。IRC追ったら現行マスタには修正したらしいので、現行マスタからビルドしてる。makeしたら、docker使ってクロス環境作って全部のバイナリ作りなさった。5やっぱ最新版の野良ビルドに限るなー、とゆーわけで、毎夜、野良ビルド回して、Jenkinsさんには毎日フレッシュなdocker-machineを使ってもらうようにしました。この時、私は気付くべきだったのです。リリースノートに載ってる新機能が動かないって、ないよねってことを。新機能なんか1番テストするよねと。ircに、開発者が、昔のEC2は良かった、今のは超複雑だぜ、とか書いてるのに気付くべきだったのです。最新版野良ビルドdocker-machine。スポットインスタンスのrestartが出来ない。winのvirtualboxだと、キャッシュしたb2dのイメージ無視して毎回DLしに行ってる。25グローバルのIPアドレスはいらないんだが開発環境は外に晒す必要がないので、VPCでプライベートなネットワークを作って、その中に立てたマシンからはNATで外に出れて、作業する時はVPNサーバを踏んで入る、とゆー環境を作って使っています。この中にdocker-machineで、ビルドやらテストやらのマシンを立てるので、パブリックなアドレスは不要です。「–amazonec2-private-address-only」オプションを指定して、パブリックなアドレスを付けないようにしていました。ある日docker-machineの–amazonec2-private-address-onlyが効かなくなってる気がする。前は効いてた気がするんだけど。野良ビルドも、Winのstableも、両方ダメ。15とゆーことに気付いてしまいます。0.5、ec2ドライバの引数で、「–amazonec2-private-address-only」がおかしい。0.4でも、指定してるhttps://camo.githubusercontent.com/f7a28e9ec4ca730d0131fcc1b061cc2ab28e0660/68747470733a2f2f7472617669732d63692e6f72672f646f636b65722f6d616368696e652e7376673f6272616e63683d6d6173746572のにグローバル振られる不具合あったけど、今度はエラーが出る状況に。50.4の開発ブランチだったかにスポットインスタンス対応入りましたって言ってバグってたのもそうだけど、docker-machineは、引数をパースする根本的な部分が怪しい動き多い。private-address-onlyも引数順で通す方法見つけた。5コードをちゃんと読んでない(goをサクサク読めるほどの腕前はないです)ので、断定的なことは言えませんが、「–amazonec2-private-address-only」オプションに関する記述は現行のコード内にもありますし、削除されたわけではなさそうですし、何より、公式のドキュメントに今も掲載されています。networkingとゆー記述があり、コード内でも確認でき、ドキュメントにはない(公式サイトはもとより、リポジトリ内のドキュメントにもありません)、といった状況です。「private-address-only」、「use-private-address」、もう意味が分かんない。因みに、エラーがでない引数順で「–amazonec2-private-address-only」を指定し、合わせて「–amazonec2-use-private-address」を指定しても、パブリックなアドレスが付きます。結果を覗いてみようdocker-machineの野良ビルドが9/20から通らなくなってた。読んでないけど、この辺に関係ありそうだな。前、go無しでmakeすんのデフォだった時でも、1分ぐらいでビルドできてたし、前と同じに戻んないかな。machine」を見つけて一安心。ゆーか、「CONTRIBUTING.md」にビルド方法書いてあるって、そーゆーもんなのかな?で、そこに、あったのは、CI、回ってるのか?確かに、リポジトリに「.travis.yml」とか入ってるし。どれどれ、見てみるか。statementsクラウドのドライバのテストが1秒もかからないでパスって、基盤を叩くテストは入ってないってことですよね。入ってたら、上からズラズラ書いてきたようなこと、起きなかっただろうけど。CLIが必要だったり。CLIをインスコして、対応しました。何で、去年、明らかだった落とし穴、埋められてないのかな、みたいな。