何これ
- Docker 公式ドキュメントにある Dockerfile の書き方のベストプラクティスがまとまっているページ
- 巷に書いてあるような意識したいことや具体的なプラクティスがまとまっている
- build context を理解しましょう、multi-stage buildを使いましょう、Dockerfile 命令の良い書き方 etc...
- イメージサイズを小さくしたり、ビルドスピードを高速にしたりするプラクティスが目立つ
- これまで雰囲気で Dockerfile を書いていたりプラクティスをつまみ食いしているだけの状態だったいので、改めて読んでみた
感想
- build context について色々書かれていたのは発見
- これまであまり意識していなかった
- 確かにビルドサイズやスピードを抑えるために、必要なファイルしか見ないようにするのはその通り
- セキュリティ的にも余分なファイルを加えないのは正しそう
- 標準入力から docker build できるのは知らなかった
- 1回限りのビルドや Dockerfile を保持し続けない場合などにいいらしい
- 「ビルドコンテキストを省略すればもっと早いぞ!」みたいに書かれていたのは面白い
- ただしサービス開発の場面で使えそうな時がパッと思い浮ばない
- ツール的な使い方をするものだったら使いどころがあるのかも
- git レポジトリなどをビルドコンテキストに出来る remote build context は使い道ありそう
- ENTRYPOINT のコンテナ起動時にヘルパースクリプトを実行させるテクニックは使えそうで、覚えておきたい
- セキュリティのプラクティスがまとまっていないのは気になった
- セキュリティの側面で書いてないだけな気もする
- ビルドコンテキストを絞ったり、イメージサイズを減らしていくのはセキュリティの面からも良いプラクティスではあるだろう
- とはいえ別の文書で当たった方がよさそうに思える
- root を避けましょうとか書いてあるけど、あんまりハッキリ言ってなくて「あれれ?」といった感想を持った
- 以前話題になっていたこの記事辺りがよいのだろうか
- Dockerfileのベストプラクティス Top 20 – Sysdig
- Snyk辺りが記事を出していそうな気もする
- You searched for | Snyk
余談
- https://docs.docker.com は左側の目次も畳めるようになってほしい