メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

例: Dockerfile を使用して、事前設定された Docker プラットフォームをカスタマイズおよび設定する

事前設定された Docker プラットフォームでは、設定ファイルを使用して、アプリケーションが依存するソフトウェアをカスタマイズしたり、設定したりすることはできません。その代わりに、事前設定済みの Docker プラットフォームをカスタマイズして、アプリケーションに必要な追加のソフトウェアパッケージをインストールする場合は、Dockerfile をアプリケーションのルートフォルダーに追加します。

Dockerfile には以下の指示を含めることができます。

  • FROM –(ファイルの最初の指示として必須)Docker コンテナを作成するベースとなり、Elastic Beanstalk が後続の Dockerfile 指示を実行する対象となるベースイメージを指定します。

    このイメージは、パブリックリポジトリ、サードパーティレジストリによってホストされているプライベートリポジトリ、または EC2 で実行しているリポジトリでホストできます。

  • EXPOSE –(必須)Docker コンテナで公開するポートをリストアップします。Elastic Beanstalk は、ポートの値を使用して、ホストで実行されているリバースプロキシに Docker コンテナを接続します。

    複数のコンテナポートを指定できますが、Elastic Beanstalk は最初に指定したコンテナポートのみを使用してホストのリバースプロキシにコンテナを接続し、公衆インターネットからのリクエストをルーティングします。

  • CMD – 起動時にコンテナが実行するコマンドに統合される、実行ファイルおよびデフォルトパラメータを指定します。次の形式を使用します。

    CMD ["executable","param1","param2"]

    CMD は、実行ファイルの引数を省略して、ENTRYPOINT コマンドのデフォルトのパラメータを指定するためにも使用できます。実行ファイルは CMD または ENTRYPOINT で指定する必要がありますが、両方で指定する必要はありません。基本的なシナリオでは CMD を使用し、ENTRYPOINT は省略します。

  • ENTRYPOINTCMD と同じ JSON 形式を使用し、CMD のように、コンテナの起動時に実行するコマンドを指定します。また、docker run を使用して、コンテナが実行ファイルとして実行できるようにします。

    ENTRYPOINT を定義する場合、CMD も同様に使用して、docker run-d オプションでオーバーライドできるデフォルトパラメータを指定できます。ENTRYPOINT によって定義されるコマンド(任意のパラメータを含む)は、コンテナの実行時に CMD または docker run からのパラメータと統合されます。

  • RUN – イメージ内でパッケージをインストールし、ウェブアプリケーションを設定する 1 つ以上のコマンドを指定します。

    Dockerfile に RUN 指示を含める場合は、RUN 指示によって使用される Dockerfile 内のファイルとコンテキストを .zip ファイルに圧縮します。ディレクトリの最上位でファイルを圧縮します。

Dockerfile に含めることができる指示の詳細については、Docker ウェブサイトの Dockerfile Reference を参照してください。

以下のスニペットは、Dockerfile の例です。Dockerfile に含まれる指示によって Python 3.4 プラットフォームがカスタマイズされ、PostgreSQL の依存関係が追加され、ポート 8080 が公開されます。

注記

Glassfish および Python 用の Elastic Beanstalk 事前設定済み Docker プラットフォームでは、ポート 8080 を公開する必要があります。Go 用の Elastic Beanstalk 事前設定済み Docker プラットフォームでは、ポート 3000 を公開する必要があります。

# Use the AWS Elastic Beanstalk Python 3.4 image
FROM amazon/aws-eb-python:3.4.2-onbuild-3.5.1

# Exposes port 8080
EXPOSE 8080

# Install PostgreSQL dependencies
RUN apt-get update && \
    apt-get install -y postgresql libpq-dev && \
    rm -rf /var/lib/apt/lists/*

追加の AWS リソース(Amazon DynamoDB や Amazon Simple Notification Service など)を使用する場合は、お客様の Elastic Beanstalk 環境で、プロキシサーバーを変更するか、オペレーティングシステムの設定を変更します。設定ファイルの使用方法の詳細については、「AWS Elastic Beanstalk 環境設定」を参照してください。