弹性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 进行反应构建?