プライベートDocker Registryの移行作業
古いプライベートDocker Registryサーバーを移行した。新サーバーには最新のイメージを使った。
Docker RegistryのバージョンV1系とV2系ではデータ構造に互換性がなく、イメージを1個ずつ旧サーバーからPull&新サーバーへPushしなくていはいけないらしい。 さすがにいちいちやってられないと思ったけど、移行ツールを見つけたので使うことにした。
だが、旧サーバーがV1ですらないのか、search APIでリポジトリ取得できなかったので移行ツールを改造して使った。 github.com
得られた知見
- 旧registryのバージョンを確認しようとしたが
latest
タグなのでわからなかった。latest
タグはあまり使わないほうがよい。 - 移行に結構時間がかかった。ほとんどのイメージのベースがubuntuだった。alpineとか使ってイメージのサイズを小さくなるようにしたほうがよい。
ISUCON6予選感想
友人のnise_nabeとtatsukiと出て惨敗してきました。
自分たちがどんな感じだったかざっくり書いていくと
- 1週間前に集まってMTG&過去問を解いて練習
- 練習はPHPで
- みんなスキルセットがバラける中、全員がちょっとでもやったことがあったのがPHP
- 練習でもなかなか良いスコア出せず
- 去年の決勝進出チームはgoが多かったらしいということで本番はgoでいくことに
- これが今回の伏線になるとは。。。
- goやっているのはnise_nabeだけなのでgoはnise_nabeが。残り二人でSQL他をチューニングする体制で。
- 本番は例のhtmlfyに殺られる
htmlfyどうしたら良かったのかは出題者や本線出場チームが書いてくれるでしょう。 何も出来なかった自分は特に書くことがないですが、あるとすれば、
チームで集まって作業できる場所の確保に失敗したら自遊空間が使える
です。
今回LINE社が用意してくれたスペースの申請を忘れてしまい、チームで作業する場所がありませんでした。。
他の選択肢としては
- リモート
- 誰かの家
- 誰かのオフィス
- 貸会議室
このようになると思いますが、自分たちは自遊空間高田馬場店のファミリールームで参戦しました。 まあまあ使えたので来年場所が確保できなかった人たち用に共有したいと思います。
- 料金は10:00~18:00でも3,000円くらいでした。
- 当然ドリンクは飲み放題で、フードメニューが結構リーズナブルだったので昼食代は300円くらいでした。
- Wi-Fiはなかったのでテザリングで対応しました。
- 通常席とは隔離されていたのでしゃべっても問題なかったです。
うちのチームの部屋には椅子はありませんでした #isucon
— nise_nabe (@nise_nabe) 2016年9月17日
↑全然スコア出なかったという意味でもあり、ファミリールームが座敷タイプだったという意味でもある。
Dockerで溜まったゴミを削除する
コンテナを起動しようとするとno space left on device
というエラーで立ち上がらなくなった。
ホストのMacのストレージは100GB以上空きがあったから、Docker for Macが内部的に確保した領域なのかな?
Dockerでno Space Left on Deviceが出てbuildできなくなった - Shoyan blog
ここを参考にコンテナとイメージを削除したけど、自分の場合はまだダメで、volumeも削除したら直った。
今後も発生しそうなのでまとめて消すコードを書いておいた。
Dockerで作るシンプルなRails開発環境
ずっとローカル開発環境はVagrantを使っていましたが、Docker for Macがリリースされてからは徐々にDockerにしています。
コードはIDE等を使って書いたほうがいいと思っているのでVagrantのsynced_foldersを好んで使っていました。
Dockerの入門記事ではよくVagrantでVirturalBox上のUbuntuにDockerを入れて…とかやっているのが多くてなんか冗長というか、違和感がありました。
Docker for Macでは直接Dockerが使えるのでコンテナを--volume
オプションで起動するとsynced_foldersのようなことは出来るし、ホストとコンテナの間に余計なものがないのでだいぶスッキリしました。
設定ファイルは以下のようになりました。ほとんど公式のクイックスタートのままですが。 Quickstart: Compose and Rails
環境は以下の通りです。
- Mac OS X 10.11.6
- Docker 1.12
- docker-compose 1.8.0
Dockerfileとdocker-compose.ymlをRailsプロジェクトディレクトリ直下に置いて、
config/database.ymlのhost:
をmysql
に書き換えて、以下のコマンドでOK。
docker-composeで立ち上げるとdepends_on
とかlinks
で指定した名前で接続できるので便利。
docker-compose build docker-compose up
Gemfileを書き換えた時はbuildからやり直しでちょっと時間がかかるけど、それ以外は不満はない。 あとコンテナサイズが大きくなりそうなんでDBのデータも外出ししておいた。
SOFT SKILLSを読んだ
エンジニア界隈で少し話題になっている(?)SOFT SKILLSを読んだ。
- 作者: ジョン・ソンメズ
- 出版社/メーカー: 日経BP社
- 発売日: 2016/06/02
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
自分が特に参考になったことはブログを書くこと
昔からエンジニアはブログ書けっていうのはよく言われていることで、最近では以下の記事記事がホッテントリしていた。 developer.hatenastaff.com
そしてこのブログのようによっしゃと書き始めるも挫折して放置する人が多いのではないか。 しかし、本に書いてあったように新しい仕事を得ようとした時に職務経歴書と面接だけではなく、ブログや勉強会やOSS活動の積み重ねがある人のほうが有利だろう。 アウトプットは大事である。また少しでもブログを書こうと思う。
人に教えることで自分の頭が整理されて自分の理解が深まるという話もよかった。 stackoverflowなどで人に聞くばかりでなく答えることもやっていけたらと思う。
ちなみに、不動産投資の部分は今の日本では無理だと思うので参考にならないかな。
本当は英語の勉強も兼ねて原著を買ったんだけど、なかなか読み進められなかったので先に日本語を読んだ。 本は1回読んだだけではすぐ忘れるので復習しながら引き続き1日1章くらい読んでいきたい。
Soft Skills: The Software Developer's Life Manual
- 作者: John Z. Sonmez,Scott Hanselman,Robert C. Martin
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2014/12/29
- メディア: ペーパーバック
- この商品を含むブログを見る