前提
- docker
- コンテナミラー倉庫
共有できる2つの
dockerhubAlibabaCloudコンテナイメージサービスの例を次に示し
ます。
序文
この記事では主に、Googleがオープンソース化したJavaフィールドのDockerビルドツールであるjibを紹介します。
現在、githubのスタートは8.5kで、フォークは784です。これは、非常に便利なJavaフィールドDocker構築ツールです。
ハイライトは、Dockerデーモンが不要なことです。つまり、dockerがローカルにインストールされていなくても、dockerイメージをjibを介してビルドでき、OCI仕様に準拠したイメージをビルドできます。
3つの方法が公式にサポートされています。
この記事では、springbootプロジェクトを使用して、mavenプラグインを介してそれを説明します。
3番目のタイプであるjibコードベースについて説明します。これは、自己開発プラットフォームでJavaDockerサービスを構築するために使用できます。
pom.xmlを構成します
次の標準タグをファイルに追加します
<build>
<plugins>
...
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.0.0</version>
<configuration>
<from>
<image>registry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67</image>
</from>
<to>
<image>imageName</image>
</to>
</configuration>
</plugin>
...
</plugins>
</build>
上記のコンテンツimageName
は、最終的にビルドされたDockerイメージアドレスである結果イメージ名を構成します。容器仓库地址/镜像名称:版本号
たとえばregistry.cn-beijing.aliyuncs.com/lyp/lanbox:v1.0
、ウェアハウスアドレスが入力されていない場合、デフォルトはdockerhubです。
さらに、基本イメージが構成されますregistry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67
。これは、DockerfileのFromステートメントと同等と見なすことができます。
ベースイメージまたはターゲットイメージにアカウントパスワードが必要な場合は、認証情報をfromタグまたはtoタグに追加するだけで、次の3つの方法があります。
- Docker構成ファイルで構成
- Mavenのsetting.xmlで構成されています
- pom.xmlファイルで直接構成します
この記事では、3番目のタイプを使用します。これは、fromタグまたはtoタグの下に認証情報の認証タグを追加することです。次に例を示します。
<from>
...
<auth>
<username>kafeidou</username>
<password>kafeidou</password>
<auth>
...
</from>
また、環境変数を使用して簡単に構成することもできます。
<from>
...
<auth>
<username>${env.REGISTRY_FROM_USERNAME}</username>
<password>${env.REGISTRY_FROM_PASSWORD}</password>
<auth>
...
</from>
ここで${env.}
、固定部分の後に実際の環境変数が続きます。
システムプロパティを使用することもできます。
mvn compile jib:build \
-Djib.to.image=myregistry/myimage:latest \
-Djib.to.auth.username=kafeidou \
-Djib.to.auth.password=kafeidou
構築時にパラメータを介して認証情報を渡すのは便利ですか?
configuration
ラベルcontainer
構成を引き続き確認します。
この構成は、次のような主なターゲット船舶関連コンテンツにタグを付けます。
- appRoot-> warパッケージプロジェクトに使用されるアプリケーションのルートディレクトリを配置します
- args->プログラムの追加の起動パラメータ。
- 環境->コンテナの環境変数
- フォーマット-> OCI仕様のミラーを構築する
- jvmFlags-> JVMパラメーター
- mainClass->プログラム起動クラス
- ポート->コンテナが開いているポート
...
特定の参照用に他のコンテンツがありますhttps://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#container-object。
注意すべき点の1つは、AliのコンテナミラーリングサービスはOCIミラーリングをサポートしていないため、Aliのコンテナミラーリングサービスを使用する場合は、デフォルトでキャンセルされるOCI形式をキャンセルすることを忘れないでください。
さらに、JVMパラメーターは環境変数を介して動的コンテンツで構成できるため、すべてのスタートアップパラメーターをjvmFlags
ラベルに書き込むことを計画する必要はありません。
コレクターG1は、たとえば、コンテナーの開始時刻を指定しますdocker run -it -e JAVA_TOOL_OPTIONS="-XX:+UseG1GC" -d registry.cn-beijing.aliyuncs.com/lyp/lanbox:v1.0
。
すべての構成項目が完了したら、mvnコマンドを実行しmvn compile jib:build
てDockerイメージの構築を開始します。
このようなメッセージが表示された場合は、成功しています。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42.598 s
[INFO] Finished at: 2020-02-18T23:30:53+08:00
[INFO] ------------------------------------------------------------------------
完全な例は、github https://github.com/FISHStack/hello-spring-cloudで表示およびダウンロードできます。通信を歓迎します。
4つのコーヒー豆を起源とし、複製し、出所を宣言してください。
最新のコンテンツを入手するには、公の餃子番号-> [4つのコーヒー豆]を懸念してください。