Dockerfile を使用してサービスを作成している場合、人々がイメージを構築するために Dockerfile (およびリポジトリ) を配布するよりも、Dockerfile を使用してイメージを構築し、それをレジストリにプッシュすることをお勧めしますか?
Dockerfile+repo の配布に有利なユース ケースと、レジストリの配布に有利なユース ケースは何ですか?
Dockerfile を使用してサービスを作成している場合、人々がイメージを構築するために Dockerfile (およびリポジトリ) を配布するよりも、Dockerfile を使用してイメージを構築し、それをレジストリにプッシュすることをお勧めしますか?
Dockerfile+repo の配布に有利なユース ケースと、レジストリの配布に有利なユース ケースは何ですか?
同じ質問が、ソース コードとバイナリ パッケージのインストールに適用できると思います。
中央の共有レジストリにプッシュすることで、特定の構成を凍結して認定し、組織内の他のユーザーが利用できるようにすることができます。
DevTableでは、当初、Docker イメージを生成するためにサーバーを展開したときに実行された Dockerfile を使用していました。Docker イメージがより複雑になり、依存関係が増えるにつれて、Dockerfile からイメージを生成するのに時間がかかるようになりました。私たちが本当に必要としていたのは、イメージを一度生成してから、完成した製品をサーバーにプルする方法でした。
通常、イメージをindex.docker.ioにプッシュすることでこれを達成しますが、世界に公開できない独自のコードがあります。Docker を中心にホストされた製品を構築することを計画している場合も、このような状況に陥る可能性があります。
このニーズにコミュニティで対応するために、Docker イメージのGithubを目指すQuayを構築しました。それをチェックして、それがあなたのニーズを解決するかどうか私たちに知らせてください.
あなたのアプリケーションに少し依存すると思いますが、私はDockerfileを好むでしょう:
これが、私が Dockerfile を好む理由です。Vagrantfile の場合も同様です。VM イメージではなく Vagrantfile が優先されます。ANT または Maven スクリプトでも同じです。パッケージ化されたアーティファクトではなく、ビルド スクリプトが優先されます (少なくともコードをプロジェクトに提供したい場合)。