検索

2.4. source-to-image ユーティリティーを使用したアプリケーションイメージのビルド

download PDF

Red Hat Software Collections オファリングでは、source-to-image ユーティリティーを提供し、Red Hat Enterprise Linux 7 サーバーでは OpenShift なしで使用できます。

注記

source-to-image は、Red Hat Enterprise Linux 7 でのみ利用でき、docker がプルしたイメージとのみ機能します。source-to-image ユーティリティーで podman を使用することはできません。

ビルドプロセスは、以下の 3 つの要素で設定されており、これら 3 つの要素が最終的なコンテナーイメージに統合されます。

  • アプリケーションのソースコード。プログラミング言語またはフレームワークで記述されています。
  • source-to-image ユーティリティーを使用してイメージビルドをサポートする Red Hat Software Collections コンテナーイメージ。
  • ビルダーイメージの一部である S2I スクリプト。これらのスクリプトの詳細は、「ビルダーイメージとしての Red Hat Software Collections コンテナーイメージ」 を参照してください。

ビルドプロセス時に、source-to-image ユーティリティーはソースコードおよびスクリプトを含む .tar ファイルを作成し、そのファイルをビルダーイメージにストリーミングします。

システムで source-to-image ユーティリティーを使用するには、以下を実行します。

  1. Red Hat Software Collections にサブスクライブします。手順は、Red Hat Software Collections へのアクセス を参照してください。
  2. source-to-image パッケージを提供する Red Hat Software Collections Server リポジトリーと、source-to-image で必要な docker パッケージが含まれる Red Hat Enterprise Linux 7 Server リポジトリーを有効にします。

    # subscription-manager repos --enable rhel-server-rhscl-7-rpms --enable rhel-7-server-extras-rpms
  3. source-to-image パッケージをインストールします。

    # yum install source-to-image
  4. コンテナーレジストリーにログインします。

    # docker login registry.redhat.io

    ビルダーイメージをプルします。

    # docker pull registry.redhat.io/rhscl_image_name

    アプリケーションのソースコードからアプリケーションイメージをビルドします。

    # s2i build path_to_application_source_code_repository --context-dir=source_code_context_directory application_image_name
  5. docker を使用して、作成されるイメージを実行します。

例2.3 source-to-image ユーティリティーを使用した Git リポジトリーからの Python 3.8 アプリケーションのビルド

この例では、rhscl/python-38-rhel7 ビルダーイメージおよび source-to-image ユーティリティーを使用して、公開 Git リポジトリーから利用可能なテストアプリケーションをビルドする方法を示しています。

  1. コンテナーレジストリーにログインします。

    # docker login registry.redhat.io
  2. rhscl/python-38-rhel7 ビルダーイメージをプルします。

    # docker pull registry.redhat.io/rhscl/python-38-rhel7
  3. 3.8/test/setup-test-app/ ディレクトリーの GitHub s2i-python リポジトリーからテストアプリケーションをビルドします。

    # s2i build https://github.com/sclorg/s2i-python-container.git --context-dir=3.8/test/setup-test-app/ registry.redhat.io/rhscl/python-38-rhel7 python-38-rhel7-app

    これにより、新しいアプリケーションイメージ python-38-rhel7-app が作成されます。

  4. 作成された python-38-rhel7-app イメージを実行します。

    # docker run -d -p 8080:8080 --name example-app python-38-rhel7-app
  5. http://localhost:8080/ から、作成されたサンプルドキュメントを取得します。

    $ wget http://localhost:8080/
  6. コンテナーを停止します。

    # docker stop example-app

関連資料

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.