Dockerfileで実行できるコマンド数を減らす方法に関して、なにか知ってれば教えて下さい。
自分の場合、下記のようにコマンドまとめたりして頑張ってるのですが、他なにかいい手段ありますか?
RUN \yum -y update; \yum install httpd.... Dockerfileで実行できるコマンド数を減らす方法に関して、なにか知ってれば教えて下さい。 自分の場合、下記のようにコマンドまとめたりして頑張ってるのですが、他なにかいい手段ありますか? | |||||||||||||
|
| 以下では、これに加えて私がイメージを作る際に周囲からもらったアドバイスや試してみたことなども含めて書いてみます。 可能な限り、必要最小限のサイズのイメージからスタートする上記ページにも記載があるように、例えばUbuntuよりもDebianを使います。私の場合は趣味的にはUbuntuが好きなのですが、配布用のDockerイメージはDebianのwheezyベースなどで作っています。上記ページにもあるように、これだけで100MBぐらい違ったりします。 RUNでのコマンドをチェーンさせてステージ数を減らすtorusさんの回答にあるものです。DockerではRUNの単位でファイルシステムの更新をおこなうので、仮にあるステージで大きなファイルを追加、その後のステージで当該ファイルを削除しても容量は食いっぱなしとなります。私が過去に作ったものでは、あるソフトウェアのソースを拾ってきてmake && make install、その後にソース一式を削除するところまでをひとつにチェーンさせることで容量削減できました。 不要な中間ファイルは削除する私がイメージを作成していた時に指摘をもらったものなのですが、 これは、ソースを残しておいたほうが何かといじりやすいと考えての対応でした。さらに言うと、あるソースのスナップショットではなく丸ごとgit cloneしていました。これは様々な実験をおこなう際には便利ですし開発環境のDockerイメージを提供しようという際には良いのです。しかしバイナリ配布でサクッと導入してもらえるようなイメージの構築においてはただの無駄ということで納得しました。 ソースは GitHubからソースを拾ってくるものについて、なるべく | |||||
|
| Docker Hub にある既存のイメージをなるべく多用し、一つのイメージでいろいろ詰め込む代わりに複数のイメージをリンクして使用するような方法で逃げられないでしょうか? また、シェルスクリプト等を ADD して、そのファイルを RUN で実行するようにすると RUN の数は抑えられると思いますがどうでしょう? | |||||
|
| 回答というより追加情報のような形になりますが・・・ 開発したWebアプリケーションを |
Google を使用して登録
Facebook を使用して登録
メールアドレスとパスワードで登録
| |