本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
预配置的 Docker 容器 (Amazon Linux AMI)
注意
2022 年 7 月 18 日,Elastic Beanstalk 将基于 Amazon Linux AMI(AL1)的所有平台分支的状态设置为已停用。有关迁移到当前且完全受支持的 Amazon Linux 2023 平台分支的更多信息,请参阅 将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2。
Amazon Linux AMI (AL1) 上运行的预配置 Docker GlassFish 平台分支不再受支持。要将 GlassFish 应用程序迁移到受支持的 Amazon Linux 2023 平台,请将 GlassFish 和您的应用程序代码部署到 Amazon Linux 2023 Docker 映像。有关更多信息,请参阅以下主题:将 GlassFish 应用程序部署到 Docker 平台:迁移到 Amazon Linux 2023 的路径。
本部分介绍如何在本地开发示例应用程序,然后使用预配置的 Docker 容器将应用程序部署到 Elastic Beanstalk。
设置本地开发环境
对于本演练,我们使用 GlassFish 示例应用程序。
设置环境
-
为示例应用程序创建新文件夹。
~$
mkdir eb-preconf-example
~$cd eb-preconf-example
-
将示例应用程序代码下载到新文件夹。
~$
wget https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-v1_cn.zip
~$unzip docker-glassfish-v1_cn.zip
~$rm docker-glassfish-v1_cn.zip
在本地开发和测试
开发示例 GlassFish 应用程序
-
将
Dockerfile
添加到应用程序的根目录文件夹。在该文件中,指定要用于运行本地预配置 Docker 容器的 Amazon Elastic Beanstalk Docker 基础映像。稍后,您将应用程序部署到 Elastic Beanstalk 预配置的 Docker GlassFish 平台版本。选择此平台版本使用的 Docker 基本映像。要了解此平台版本的当前 Docker 镜像的更多信息,请参阅 Amazon Elastic Beanstalk 平台指南中的 Amazon Elastic Beanstalk 支持的平台页面的预配置 Docker 部分。例 ~/Eb-preconf-example/Dockerfile
# For Glassfish 5.0 Java 8 FROM amazon/aws-eb-glassfish:5.0-al-onbuild-2.11.1
有关使用
Dockerfile
的更多信息,请参阅Docker 配置。 -
构建 Docker 映像。
~/eb-preconf-example$
docker build -t my-app-image .
-
从该映像运行 Docker 容器。
注意
必须包含
-p
标记才能将容器中的端口 8080 映射到 localhost 端口 3000。Elastic Beanstalk Docker 容器始终在容器上的端口 8080 上公开应用程序。-it
标志将映像作为交互式进程运行。当容器存在时,--rm
标志将清理容器文件系统。您可以选择包含-d
标志以将映像作为守护程序运行。$
docker run -it --rm -p 3000:8080 my-app-image
-
要查看示例应用程序,请将以下 URL 键入您的 Web 浏览器。
http://localhost:3000
部署到 Elastic Beanstalk
在测试应用程序后,可随时将其部署到 Elastic Beanstalk。
将应用程序部署到 Elastic Beanstalk
-
在应用程序的根文件夹中,将
Dockerfile
重命名为Dockerfile.local
。Elastic Beanstalk 若要使用Dockerfile
,则必须执行此步骤,该文件中包含关于 Elastic Beanstalk 在 Elastic Beanstalk 环境中的每个 Amazon EC2 实例上构建自定义 Docker 映像的正确说明。注意
如果您的
Dockerfile
包含修改平台版本的基础 Docker 映像的指令,则无需执行此步骤。如果您的Dockerfile
仅包含用来指定从中构建容器的基本映像的Dockerfile
行,则完全无需使用FROM
。在这种情况下,Dockerfile
是冗余的。 -
创建应用程序源包。
~/eb-preconf-example$
zip myapp.zip -r *
-
使用下面的预配置链接打开 Elastic Beanstalk 控制台:console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced
-
对于 Platform (平台),在 Preconfigured – Docker (预配置 – Docker) 下,选择 Glassfish。
-
对于 Application code (应用程序节点),选择 Upload your code (上传您的节点),然后选择 Upload (上传)。
-
选择 Local file (本地文件),再选择 Browse (浏览),然后打开您刚刚创建的应用程序源包。
-
请选择 Upload(上传)。
-
选择复查并启动。
-
查看可用设置并选择 Create app (创建应用程序)。
-
创建环境后,您可以查看已部署的应用程序。选择控制台控制面板顶部显示的环境 URL。