AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

开始使用预配置 Docker 容器

本部分演示如何在本地开发示例应用程序,然后使用预配置 Docker 容器将您的应用程序部署到 Elastic Beanstalk。

设置本地开发环境

在本演练中,我们将使用 Python Flask“Hello World”应用程序。

设置开发环境

  1. 为示例应用程序创建新文件夹。

    ~$ mkdir eb-flask-sample ~$ cd eb-flask-sample
  2. 在应用程序的根目录文件夹中,创建 application.py 文件。在该文件中包含以下内容:

    例 ~/eb-flask-sample/application.py

    from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
  3. 在应用程序的根目录文件夹中,创建 requirements.txt 文件。在该文件中包含以下内容:

    例 ~/eb-flask-sample/requirements.txt

    flask

在本地开发和测试

开发示例 Python Flask 应用程序

  1. Dockerfile 添加到应用程序的根目录文件夹。在文件中,通过包含以下内容指定要用于运行您的本地预配置 Docker 容器并且供 Elastic Beanstalk 对其运行任何后续 Dockerfile 指令的 AWS Elastic Beanstalk Docker 基本映像:

    例 ~/eb-flask-sample/Dockerfile

    # For Python 3.4 FROM amazon/aws-eb-python:3.4.2-onbuild-3.5.1

    AWS Elastic Beanstalk 还支持 Glassfish 4.1 Java 8 和 Glassfish 4.0 Java 7 的 Docker 映像。有关它们的 Docker 映像的名称,请参阅AWS Elastic Beanstalk 支持的平台。有关使用 Dockerfile 的更多信息,请参阅单容器 Docker 配置

  2. 构建 Docker 映像。

    ~/eb-flask-sample$ docker build -t my-app-image .
  3. 从该映像运行 Docker 容器。

    注意

    必须包含 -p 标记才能将容器中的端口 8080 映射到 localhost 端口 3000。Elastic Beanstalk Docker 容器始终在该容器中的端口 8080 上公开应用程序。-it 标志将映像作为交互式进程运行。当容器存在时,-rm 标志将清理容器文件系统。您可以选择包含 -d 标志以将映像作为守护程序运行。

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. 要查看示例应用程序,请将以下 URL 键入您的 Web 浏览器。

    http://localhost:3000

部署到 Elastic Beanstalk

在测试应用程序后,可随时将其部署到 Elastic Beanstalk。

将应用程序部署到 Elastic Beanstalk

  1. 在应用程序的根文件夹中,将 Dockerfile 重命名为 Dockerfile.local。若要让 Elastic Beanstalk 使用 Dockerfile,此步骤是必需的。Dockerfile 包含供 Elastic Beanstalk 在 Elastic Beanstalk 环境中的每个 Amazon EC2 实例上构建自定义 Docker 映像的正确指令。

    注意

    如果您的 Dockerfile 包含修改平台版本的基础 Docker 映像的指令,则无需执行此步骤。如果您的 Dockerfile 仅包含用来指定从中构建容器的基本映像的 Dockerfile 行,则无需使用 FROM在这种情况下,Dockerfile 是冗余的。

  2. 创建应用程序源包。有关更多信息,请参阅 创建应用程序源包

  3. 要创建可将您的应用程序部署到的新 Elastic Beanstalk 应用程序,请参阅管理和配置 AWS Elastic Beanstalk 应用程序。在适当的步骤中,在 Environment Type (环境类型) 页上的 Predefined configuration (预定义配置) 列表中的 Preconfigured - Docker (预配置 - Docker) 下,单击 Python