如何在 AWS Elastic Beanstalk docker 环境中指定或增加 docker 构建超时?
AWS elastic beanstalk为docker环境提供了300秒的默认超时,如果docker镜像构建时间超过该值,应用程序部署将失败。我正在尝试构建一个 next.js 应用程序,并进行必要的优化,构建时间超过 300 秒。
根据其他几个 Stack Overflow 答案的建议,我尝试在弹性 beanstalk 环境的配置中将命令超时值设置为 600 秒(滚动更新和部署 -> 部署首选项),但这没有帮助。 300 秒后部署仍然失败,并出现超时错误。
看起来没有办法增加这个超时时间,大多数答案都建议使用预构建映像。如果您不想处理预先构建的图像,请使用此解决方法:
.ebextensions/000_command_timeout.config
option_settings:
- namespace: aws:elasticbeanstalk:command
option_name: Timeout
value: 3000
.platform/hooks/prebuild/999_docker_compose_build.sh
:#!/bin/bash
cd /var/app/staging
docker compose build
使该钩子可执行:
chmod +x .platform/hooks/prebuild/999_docker_compose_build.sh
如果您使用的是 Beanstalk 生成的
.env
文件,请添加到 .dockerignore
,否则 Beanstalk 会将其添加到钩子之后并使缓存失效。