弹性beantalk反应应用程序docker容器启动问题

Posted

技术标签:

【中文标题】弹性beantalk反应应用程序docker容器启动问题【英文标题】:Elastic beanstalk react application docker container launch issue 【发布时间】:2021-02-19 12:32:54 【问题描述】:

我正在尝试在 AWS 弹性 beantalk 上使用 docker 托管一个反应应用程序。应用程序在本地工作,我也尝试创建一个本地 docker 映像并运行它,它工作正常。 但是,通过使用 AWS 控制台将代码上传为 zip 进行托管时,EB 实例进入“无数据”或“无效状态”,发布无法在该实例上执行任何操作,甚至无法退出日志强>。任何建议都会有所帮助。

这是一个简单的反应应用程序。

DockerFile 内容:

FROM node:13.13

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

ENV NODE_ENV=production

# Bundle app source
COPY . .

EXPOSE 3000
CMD [ "npm", "start" ]

包中的启动命令

"scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build"

【问题讨论】:

【参考方案1】:

问题与超时有关,超时后我无法从 AWS 控制台执行任何操作,因为环境进入“无效状态”。尽管在 EB UI/Cloudwath/Cloudformation 日志中没有给出任何相关信息,但在 ".ebextensions/timeout.config" 中添加超时配置为

option_settings:
    - namespace: aws:elasticbeanstalk:command
      option_name: Timeout
      value: 1000

解决了问题。

参考:Timeout Error

【讨论】:

以上是关于弹性beantalk反应应用程序docker容器启动问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在弹性beantalk docker json中定义多个任务

弹性beantalk docker应用程序无法连接到mysql

将 Docker 映像部署到 AWS 弹性 beantalk

如何使用弹性 beantalk 中的 express.js 进行反应构建?

从弹性beantalk上的docker-compose部署查看node.js日志(console.log)

使用 POST 请求与来自 netlify 的弹性 beantalk 通信