このドキュメントでは Paketo Buildpack を使用して HTTPD や NGINX で実行するアプリケーションのコンテナイメージを作成する方法を説明します。 一般的な手順を説明しているだけなので、Buildpack の振る舞いや設定方法を詳しく知りたいときは、それぞれの Web Server 用 Buildpack のリファレンスを参照してください。
This documentation explains how to use the Paketo HTTPD Buildpack to build applications for several common use-cases. For more in-depth description of the buildpack’s behavior and configuration see the Paketo HTTPD Buildpack Reference documentation.
pack
コマンドを使うと、Apache HTTP Server Cloud Native Buildpack で次のようにサンプルアプリケーションをビルドできます。
git clone https://github.com/paketo-buildpacks/samples cd samples/httpd pack build my-app --buildpack gcr.io/paketo-buildpacks/httpd \ --builder paketobuildpacks/builder:full
Copied!
アプリケーションの実行方法は ソースコードリポジトリの README を参照してください。
注意:Apache HTTP Server Cloud Native Buildpack は Paketo Full ビルダーが必要です。Full ビルダーにしか含まれないOSのシステムライブラリを使用するからです。
Apache HTTPD Server Cloud Native Buildpack では、デプロイする Apache HTTP Server のバージョンを環境変数 BP_HTTPD_VERSION
で指定できます。
Apache HTTPD Server Cloud Native Buildpack で使用できるバージョンは、 Apache HTTPD Server Cloud Native Buildpack のリリースノート で確認できます。
httpd
のバージョンは明示的に指定しなくても構いません。
その場合、Apache HTTPD Server Cloud Native Buildpack のリリースノートに記述された既定のバージョンを使用します。
アプリケーションを HTTPD v2.4.46 でデプロイするときは、ビルド時に環境変数 BP_HTTPD_VERSION
を指定します。
pack コマンドの --env
フラグでも指定できますし、 project.toml でも指定できます。
BP_HTTPD_VERSION="2.4.46"
Copied!
buildpack.yml
で指定する
Apache HTTP Server Buildpack の v1.0.0 から、buildpack.yml
でバージョンを指定するのは非推奨になりました。
環境変数 $BP_HTTPD_VERSION
を使用してください。
アプリケーションのソースコードに httpd.conf
を含めるようにします。
Apache HTTPD Server Cloud Native Buildpack は、Apache HTTPD Server の実行可能ファイルをインストールするだけでなく、コンテナイメージを実行するときに起動できるように構成します。
This documentation explains how to use the Paketo NGINX Buildpack to build applications for several common use-cases. For more in-depth description of the buildpack’s behavior and configuration see the Paketo NGINX Buildpack Reference documentation.
pack
コマンドを使うと、NGINX Server Cloud Native Buildpack で次のようにサンプルアプリケーションをビルドできます。
git clone https://github.com/paketo-buildpacks/samples cd samples/nginx pack build my-app --buildpack gcr.io/paketo-buildpacks/nginx \ --builder paketobuildpacks/builder:base
Copied!
アプリケーションの実行方法は ソースコードリポジトリの README を参照してください。
注意:この例では Paketo Base ビルダーを使っていますが、NGINX Server Cloud Native Buildpack は Paketo Full ビルダーと互換性があります
NGINX Server Cloud Native Buildpack では、デプロイする NGINX のバージョンを変更できます。 NGINX Server Cloud Native Buildpack で使用できるバージョンは、 Apache HTTPD Server Cloud Native Buildpack のリリースノート で確認できます。
nginx
のバージョンは明示的に指定しなくても構いません。
その場合、NGINX Server Cloud Native Buildpack のリリースノートに記述された既定のバージョンを使用します。
アプリケーションを NGINX v1.19.8 でデプロイするときは、ビルド時に環境変数 BP_NGINX_VERSION
を指定します。
pack コマンドの --env
フラグでも指定できますし、 project.toml でも指定できます。
BP_NGINX_VERSION="1.19.8"
Copied!
buildpack.yml
で指定する
NGINX Server Buildpack の v1.0.0 から、buildpack.yml
でバージョンを指定するのは非推奨になりました。
環境変数 $BP_NGINX_VERSION
を使用してください。
アプリケーションのソースコードに nginx.conf
を含めるようにします。
NGINX Server Cloud Native Buildpack は、NGINX の実行可能ファイルをインストールするだけでなく、コンテナイメージを実行するときに起動できるように構成します。
NGINX Server Cloud Native Buildpack ではテンプレート形式の設定ファイルに対応しています。
nginx.conf
の中で、{{port}}
や {{env "FOO"}}
や {{module "ngx_stream_module}}
のように、起動時に決定できる値を変数として記述できます。
具体的な使い方は サンプルアプリケーション を参照してください。
設定ファイルに {{port}}
と記述すると、Buildpack で作成したコンテナイメージを実行するとき、環境変数 $PORT
を読み取った値に展開します。
サーバーがリクエストを待ち受けするポート番号を動的に指定する方法として利用できます。
具体的には次のように記述できます。
server { listen {{port}}; }
Copied!
コンテナイメージを実行するときに環境変数で PORT
を指定するときは次のようにします。
docker run --tty --env PORT=8080 --publish 8080:8080 my-nginx-image
Copied!
{{port}}
は分かりやすい例でした。
プロセスの起動時に指定された環境変数を参照するときは {{env "FOOVAR"}}
のように記述します。
レスポンスの GZIP 圧縮機能を環境変数 GZIP_DOWNLOADS
で切り替えられるようにするには、次のように記述します。
gzip {{env "GZIP_DOWNLOADS"}};
Copied!
コンテナイメージを実行するときに環境変数で GZIP_DOWNLOADS
を指定するときは次のようにします。
docker run --tty --env PORT=8080 --env GZIP_DOWNLOADS=off --publish 8080:8080 my-nginx-image
Copied!
load_module
に指定する動的モジュールのパスも、テンプレート変数で指定できます。
アプリケーションディレクトリに modules/ngx_foo_module.so
というモジュールがあるときは、nginx.conf
を次のように記述します。
{{module "ngx_foo_module"}}
Copied!
Buildpack が準備した ngx_stream_module
というモジュールがあるときは、nginx.conf
を次のように記述します。
{{module "ngx_stream_module"}}
Copied!
nginx.conf
の詳しい内容については NGINX のドキュメント を参照してください。
Last modified: September 10, 2021