ドキュメントは言う:
イメージをビルドしてローカルの Docker サーバーに保存するには、次を使用します。
docker:publishLocal
私は Docker を使い始めたばかりで、「ローカル Docker サーバー」の概念に慣れていません。それは何ですか? の出力はどこで探すべきdocker:publishLocal
ですか?
ドキュメントは言う:
イメージをビルドしてローカルの Docker サーバーに保存するには、次を使用します。
docker:publishLocal
私は Docker を使い始めたばかりで、「ローカル Docker サーバー」の概念に慣れていません。それは何ですか? の出力はどこで探すべきdocker:publishLocal
ですか?
Docker の主なコンポーネントについては、https ://docs.docker.com/introduction/understanding-docker/#what-are-the-major-docker-components で説明しています。
「Docker サーバー」と記載されているのは、リンク先の説明で「Docker デーモン」です。Docker デーモンはローカル マシンで実行され、通常、docker
バイナリによって実行されるコマンドの主要な連絡先になります。
Docker デーモンは、次のような多くのタスクを実行します。
SBT は、という名前のタスクを使用して、publishLocal
アセットをローカルの Ivy/Maven リポジトリに公開します (これはマシンにのみ存在するものです)。
sbt-native-packager の Docker サポートは、Docker コンテキストで同じタスクを使用しようとするため、sbt docker:publishLocal
ローカルの Docker サーバーにイメージがビルドされます。ローカルで Ivy または Maven に公開するのと同じように、このアクションにより、イメージを開発用にローカルで表示できますが、ローカル マシンの外部では表示できません。
実際には、コマンドにマップされますdocker build -t "${projectName}:${version}"
その後、このイメージをdocker run "${projectName}:${version}"
で使用できますが、ローカル マシンでのみ使用できます。
SBT は、という名前のタスクを使用して、publish
リモートの Ivy/Maven リポジトリにアセットを公開します。これには、イメージを公開する場所を記述するために、追加の構成が必要です。
また、sbt-native-packager は、このタスクを Docker コンテキストの適切なアクションにマップしようとします。そのため、プラグインはイメージをローカルでビルドし、続いてイメージを適切なリモート イメージ リポジトリにプッシュします。
これを機能させるには、設定を追加する必要がありdockerRepository
ます。
「username1」などのスラッシュなしの文字列に設定すると、イメージ名に「username1/」が追加されます。イメージをプッシュしようとすると、Docker は、"username1" のアカウントで、https: //registry.hub.docker.com/ にある公開 Docker レジストリーにイメージをプッシュしようとします。
「my.server1/username1」などのスラッシュを含む文字列に設定されている場合、その文字列もイメージ名に追加されます。これは前のケースと似ていますが、Docker サーバーは DNS で「my.server1」というサーバーを見つけようとし、パブリック Docker レジストリの代わりにそこにプッシュします。
実際には、それはにマッピングされます
docker build -t "${dockerRepository}/${projectName}:${version}" . // working directory at `target/docker/stage`
docker push "${dockerRepository}/${projectName}:${version}"
その後、ローカル マシンまたは他のマシンからこのイメージを .xml で使用できますdocker run "${dockerRepository}/${projectName}:${version}"
。
このstage
タスクは、Docker デーモンに送信できる形式で、Docker イメージのすべてのファイルを含むディレクトリを作成します。このディレクトリはtarget/docker/stage
. 作業ディレクトリを here に変更して を実行するとdocker build .
、そのディレクトリの内容を使用してイメージがビルドされます。