dockerをインストールせずにdockerイメージを構築できます

前提

  1. docker
  2. コンテナミラー倉庫

共有できる2つの
dockerhubAlibabaCloudコンテナイメージサービスの例を次に示し
ます。

序文

この記事では主に、Googleがオープンソース化したJavaフィールドのDockerビルドツールであるjibを紹介します。

現在githubのスタートは8.5kで、フォークは784です。これは、非常に便利なJavaフィールドDocker構築ツールです。

ハイライトは、Dockerデーモンが不要なことです。つまり、dockerがローカルにインストールされていなくても、dockerイメージをjibを介してビルドでき、OCI仕様に準拠したイメージをビルドできます

3つの方法が公式にサポートされています。

  1. Mavenプラグイン
  2. グレードプラグイン
  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つの方法があります。

  1. Docker構成ファイルで構成
  2. Mavenのsetting.xmlで構成されています
  3. 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構成引き続き確認ます。
この構成は、次のような主なターゲット船舶関連コンテンツにタグを付けます。

  1. appRoot-> warパッケージプロジェクトに使用されるアプリケーションのルートディレクトリを配置します
  2. args->プログラムの追加の起動パラメータ。
  3. 環境->コンテナの環境変数
  4. フォーマット-> OCI仕様のミラーを構築する
  5. jvmFlags-> JVMパラメーター
  6. mainClass->プログラム起動クラス
  7. ポート->コンテナが開いているポート
    ...
    特定の参照用に他のコンテンツがあります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つのコーヒー豆]を懸念してください。
4つのコーヒー豆

おすすめ

転載: blog.csdn.net/lypgcs/article/details/104387290