由于构建超时,AWS Elastic Beanstalk docker 环境上的部署失败 - 如何增加 Next.js 应用程序的超时?

问题描述 投票:0回答:1

如何在 AWS Elastic Beanstalk docker 环境中指定或增加 docker 构建超时?

AWS elastic beanstalk为docker环境提供了300秒的默认超时,如果docker镜像构建时间超过该值,应用程序部署将失败。我正在尝试构建一个 next.js 应用程序,并进行必要的优化,构建时间超过 300 秒。

根据其他几个 Stack Overflow 答案的建议,我尝试在弹性 beanstalk 环境的配置中将命令超时值设置为 600 秒(滚动更新和部署 -> 部署首选项),但这没有帮助。 300 秒后部署仍然失败,并出现超时错误。

Command timeout option in beanstalk environment configuration

amazon-web-services amazon-elastic-beanstalk
1个回答
0
投票

看起来没有办法增加这个超时时间,大多数答案都建议使用预构建映像。如果您不想处理预先构建的图像,请使用此解决方法:

  1. 通过添加文件来增加命令超时
    .ebextensions/000_command_timeout.config
option_settings:
  - namespace: aws:elasticbeanstalk:command
    option_name: Timeout
    value: 3000
  1. 添加一个预构建挂钩,该挂钩将在 Beanstalk 之前构建图像,因此所有层都将被缓存,该挂钩可能应该是最后一个
    .platform/hooks/prebuild/999_docker_compose_build.sh
    :
#!/bin/bash

cd /var/app/staging
docker compose build
  1. 使该钩子可执行:

    chmod +x .platform/hooks/prebuild/999_docker_compose_build.sh

  2. 如果您使用的是 Beanstalk 生成的

    .env
    文件,请添加到
    .dockerignore
    ,否则 Beanstalk 会将其添加到钩子之后并使缓存失效。

© www.soinside.com 2019 - 2024. All rights reserved.