【发布时间】:2020-08-19 01:54:20
【问题描述】:
我在 ECS 中运行 React 应用程序。已创建 docker 映像并通过 jenkins 管道推送到 ECR。ECS 容器通过 terraform 代码创建。但是容器以代码 0 退出并开始新的容器。这变成了一个循环。当我尝试使用来自同一图像的命令手动创建容器时,容器仍然处于活动状态。当 ECS EC2 中使用相同的图像时,容器被创建并退出。 当我从云手表检查日志时,我得到的日志为 不是来自 webpack 的内容由 /app/public 提供 404 将回退到 /
enter code here
FROM node:13.12.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install app dependencies
COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@3.4.1 -g --silent
# add app
COPY . ./
# start app
ENTRYPOINT ["npm", "start"]
【问题讨论】:
-
您正在使用 ecs farget,这意味着由于内存或 cpu 资源没有问题。如果您可以检查服务事件和错误日志,您可能会有所了解。 aws.amazon.com/premiumsupport/knowledge-center/…
-
感谢您的回复,但我没有使用 fargate。我使用的是 ec2 linux。从 cloudwatch 日志中我得到的不是来自 webpack 的内容是从 /app/public 404s 将回退到 / 但是当我通过手动提供命令来运行具有相同图像的容器时 docker run -dit --name -p imagename容器被创建并稳定。但是当我使用 ECS(相同图像)自动化时,容器正在退出。
-
我不是 100% 确定,但看起来容器进程正在以退出代码 0 完成。如果可以,请将其添加到 ECS:stdin_open: true 并检查哪个容器将继续运行并且它不会退出
-
添加 stdin_open: true, tty: true 将与使用
docker run -it运行容器相同
标签: reactjs docker dockerfile amazon-ecs