TKC Works

ギジュツ的なメモ、読書感想文など

プライベート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はなかったのでテザリングで対応しました。
  • 通常席とは隔離されていたのでしゃべっても問題なかったです。

↑全然スコア出なかったという意味でもあり、ファミリールームが座敷タイプだったという意味でもある。

Dockerで溜まったゴミを削除する

コンテナを起動しようとするとno space left on deviceというエラーで立ち上がらなくなった。 ホストのMacのストレージは100GB以上空きがあったから、Docker for Macが内部的に確保した領域なのかな?

Dockerでno Space Left on Deviceが出てbuildできなくなった - Shoyan blog

ここを参考にコンテナとイメージを削除したけど、自分の場合はまだダメで、volumeも削除したら直った。

今後も発生しそうなのでまとめて消すコードを書いておいた。

Dockerで溜まったゴミを削除する

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

Dockerで作るシンプルなRails開発環境

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を読んだ。

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

自己啓発本はそれなりに読んできたので目新しいことは少なかったけど、 この本はエンジニアにとって実践すべきことが書いてあった。 仕事の探し方から集中、エクササイズ、投資、メンタルまで、まさに人生マニュアルだった。

自分が特に参考になったことはブログを書くこと

昔からエンジニアはブログ書けっていうのはよく言われていることで、最近では以下の記事記事がホッテントリしていた。 developer.hatenastaff.com

そしてこのブログのようによっしゃと書き始めるも挫折して放置する人が多いのではないか。 しかし、本に書いてあったように新しい仕事を得ようとした時に職務経歴書と面接だけではなく、ブログや勉強会やOSS活動の積み重ねがある人のほうが有利だろう。 アウトプットは大事である。また少しでもブログを書こうと思う。

人に教えることで自分の頭が整理されて自分の理解が深まるという話もよかった。 stackoverflowなどで人に聞くばかりでなく答えることもやっていけたらと思う。

ちなみに、不動産投資の部分は今の日本では無理だと思うので参考にならないかな。

本当は英語の勉強も兼ねて原著を買ったんだけど、なかなか読み進められなかったので先に日本語を読んだ。 本は1回読んだだけではすぐ忘れるので復習しながら引き続き1日1章くらい読んでいきたい。

Soft Skills: The Software Developer's Life Manual

Soft Skills: The Software Developer's Life Manual