2.7. Python


2.7.1. 概要

OpenShift Online には 、Python アプリケーションのビルドおよび実行用に S2I が有効な Python イメージが含まれています。Python S2I ビルダーイメージは、必要な依存関係を使用してアプリケーションソースを組み立てて、Python アプリケーションを含む新規イメージを作成します。結果として生成されるイメージは、OpenShift Online または Docker のいずれかで実行できます。

2.7.2. バージョン

現時点で、OpenShift Online は Python のバージョン 2.73.33.4、および 3.5 を提供しています。

2.7.3. イメージ

RHEL 7 イメージは、Red Hat レジストリーから入手できます。

$ docker pull registry.access.redhat.com/rhscl/python-27-rhel7
$ docker pull registry.access.redhat.com/openshift3/python-33-rhel7
$ docker pull registry.access.redhat.com/rhscl/python-34-rhel7
$ docker pull registry.access.redhat.com/rhscl/python-35-rhel7

このイメージは、python イメージストリームで使用することができます。

2.7.4. ビルドプロセス

S2I は、ソースコードをコンテナーに挿入し、コンテナーにソースコードの実行を準備をさせることで、実行準備が整ったイメージを生成します。S2I では、以下の手順を実行します。

  1. ビルダーイメージからコンテナーを起動します。
  2. アプリケーションソースをダウンロードします。
  3. ビルダーイメージコンテナーにスクリプトとアプリケーションソースをストリーミングします。
  4. (ビルダーイメージから) assemble スクリプトを実行します。
  5. 最終的なイメージを保存します。

ビルドプロセスの詳細のまとめについては、「S2I ビルドプロセス」を参照してください。

2.7.5. 設定

Python イメージは多数の環境変数を複数サポートし、環境変数を設定することで Python のラインタイムの設定や動作を制御できます。

イメージの一部としてこれらの環境変数を設定するには、ソースコードリポジトリーの中にある .s2i/environment ファイル に配置するか、ビルド設定の sourceStrategy 定義の環境セクションに定義します。

また、新規アプリケーションの作成時に既存のイメージを使用するか、デプロイメント設定などの既存のオブジェクトの環境変数を更新して環境変数を設定できます。

注記

ビルドの動作を制御する環境変数は、s2i ビルド設定または .s2i/environment ファイルの一部として設定して、ビルドの手順で利用できるようにする必要があります。

表2.9 Python 環境変数
変数名説明

APP_FILE

この変数は、アプリケーションを起動する Python インタープリターに渡すファイル名を指定します。デフォルトでは、この変数は app.py に設定されています。

APP_MODULE

この変数は WSGI 呼び出し可能なオブジェクトを指定します。この変数のパターンは $(MODULE_NAME):$(VARIABLE_NAME) で、モジュール名はドットのフルパスに指定し、変数名は指定のモジュール内の関数を参照します。アプリケーションのインストールに setup.py を使用した場合に、モジュール名はファイルから読み込むことができ、変数は application に設定されます。setup-test-app のサンプルがあります。

APP_CONFIG

この変数は、gunicorn 設定 で有効な Python ファイルへのパスを指定します。

DISABLE_COLLECTSTATIC

空でない値に設定して、ビルド時に manage.py collectstatic が実行されないようにします。これは Django プロジェクトに対してのみ影響があります。

DISABLE_MIGRATE

空でない値に設定して、生成されたイメージの実行時に manage.py migrate が実行されないようにします。これは Django プロジェクトに対してのみ影響があります。

PIP_INDEX_URL

ビルドプロセス時に必要なパッケージをダウンロードするための、カスタムのインデックス URL またはミラーを使用するように、この変数を設定します。これは、requirements.txt ファイルに記載のパッケージにのみ影響があります。

WEB_CONCURRENCY

これを設定して、ワーカー 数のデフォルト設定を変更します。デフォルトでは、これは利用可能なコアに 4 をかけた数字に設定されています。

2.7.6. ホットデプロイ

ホットデプロイでは、新しい S2I ビルドを生成する必要なしに、アプリケーションに変更をすばやく加え、デプロイすることができます。Django を使用する場合は、ホットデプロイメントはカスタマイズなしに使用できます。

Gunicorn を使用したホットデプロイメントを有効にするには、reload オプションtrue に設定して、リポジトリーに Gunicorn 設定ファイルが配置されているようにします。設定ファイルは、APP_CONFIG 環境変数を使用して指定します。たとえば、oc new-app コマンドを参照してください。oc set env コマンドを使用して、既存オブジェクトの環境変数を更新できます。

警告

このオプションは、開発またはデバッグの時にだけ使用するようにしてください。 実稼働環境でこの設定をオンにすることは推奨しません。

実行中の Pod でソースコードを変更するには、oc rsh コマンドを使用して、コンテナーに入ります。

$ oc rsh <pod_id>

実行中のコンテナーに入った後に、現在のディレクトリーを、ソースコードが配置されている /opt/app-root/src に設定します。

2.7.7. Python テンプレート

OpenShift Online には、サンプル Django アプリケーションをデプロイするためのサンプルテンプレートが含まれています。このテンプレートは、ストレージの永続ボリュームを使用して PostgreSQL データベースを含む Python 3.5 のサンプルアプリケーションをビルドし、デプロイします。

サンプルアプリケーションは、以下のコマンドで rhscl/python-35-rhel7 イメージを使用してビルドし、デプロイできます。

$ oc new-app --template=django-psql-persistent
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.