The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.
このページを編集

Quarkusベースランタイムイメージ

ネイティブ実行可能ファイルのコンテナ化を容易にするために、Quarkusはこれらの実行可能ファイルを実行するための要件を提供するベースイメージを提供しています。 quarkus-micro-image:1.0 のイメージは次の通りです:

  • 軽量( ubi8-micro に基づきます)

  • コンテナ用に設計

  • 正しい依存関係のセット(glibc, libstdc++, zlib)を含んでいる

  • upx圧縮された実行可能ファイルのサポート(詳細は 圧縮の有効化についてのドキュメントを参照してください)

ベースイメージの利用

Dockerfile の中で以下を記述します:

FROM quay.io/quarkus/quarkus-micro-image:2.0 WORKDIR /work/ COPY --chmod=0755 target/*-runner /work/application EXPOSE 8080 CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]

イメージの拡張

アプリケーションには追加の要件があるかもしれません。たとえば、 libfreetype.so を必要とするアプリケーションがある場合、ネイティブライブラリをコンテナにコピーする必要があります。この場合、必要なライブラリをコピーするために、多段式の dockerfile を使用する必要があります:

# First stage - install the dependencies in an intermediate container FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10 as BUILD RUN microdnf install freetype # Second stage - copy the dependencies FROM quay.io/quarkus/quarkus-micro-image:2.0 COPY --from=BUILD \ /lib64/libfreetype.so.6 \ /lib64/libbz2.so.1 \ /lib64/libpng16.so.16 \ /lib64/ WORKDIR /work/ COPY --chmod=0755 target/*-runner /work/application EXPOSE 8080 CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]

AWTのフルサポートを利用する必要がある場合、 libfreetype.so だけでなく、フォント及びフォント設定も必要です:

# First stage - install the dependencies in an intermediate container FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10 as BUILD RUN microdnf install freetype fontconfig # Second stage - copy the dependencies FROM quay.io/quarkus/quarkus-micro-image:2.0 COPY --from=BUILD \ /lib64/libfreetype.so.6 \ /lib64/libgcc_s.so.1 \ /lib64/libbz2.so.1 \ /lib64/libpng16.so.16 \ /lib64/libm.so.6 \ /lib64/libbz2.so.1 \ /lib64/libexpat.so.1 \ /lib64/libuuid.so.1 \ /lib64/ COPY --from=BUILD \ /usr/lib64/libfontconfig.so.1 \ /usr/lib64/ COPY --from=BUILD \ /usr/share/fonts /usr/share/fonts COPY --from=BUILD \ /usr/share/fontconfig /usr/share/fontconfig COPY --from=BUILD \ /usr/lib/fontconfig /usr/lib/fontconfig COPY --from=BUILD \ /etc/fonts /etc/fonts WORKDIR /work/ COPY --chmod=0755 target/*-runner /work/application EXPOSE 8080 CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]

代替 - ubi-minimalを使用する

もし、マイクロイメージが要件に合わない場合は、 ubi8/ubi-minimal を利用できます。ubi8/ubi-minimalは、比べるとサイズの大きなイメージですが、より多くのユーティリティを含んでおり、完全なLinuxディストリビューションに近いものです。特に、パッケージマネージャー( microdnf )が含まれているので、より簡単にパッケージをインストールすることができます。

このベースイメージを使用するには、以下の Dockerfile を使用します:

FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10 WORKDIR /work/ RUN chown 1001 /work \ && chmod "g+rwX" /work \ && chown 1001:root /work COPY --chown=1001:root --chmod=0755 target/*-runner /work/application EXPOSE 8080 USER 1001 CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]

関連コンテンツ