gpt4 book ai didi

Docker 部署到 elasticbeanstalk 很慢

转载 作者:行者123 更新时间:2023-12-05 03:19:58 29 4
gpt4 key购买 nike

我的docker文件如下

FROM node:16.16.0 as ui
WORKDIR /app
COPY ./ui/package.json .
RUN npm install
COPY ./ui/ .

WORKDIR /admin
COPY ./admin/package.json .
RUN npm install
COPY ./admin/ .

FROM ui as ui1
WORKDIR /app
RUN npm run build

WORKDIR /admin
RUN npm run build


FROM nginx
EXPOSE 3000 5001
COPY ./nginx/prod.conf /etc/nginx/conf.d/default.conf
COPY --from=ui1 /app/build /usr/share/nginx/html
COPY --from=ui1 /admin/build /usr/share/nginx/admin

一切都按预期工作正常,但每次 eb 部署 都需要超过 4 分钟。它是一个带有 React hello world 页面的简单应用。

第一次没问题,因为它安装了节点、包等。但是第二次,如果我只是更改应用程序中的一些内容并重新部署,它又需要 4 到 5 分钟。

我试过 eb deploy --staged ,它仍然需要同样的时间。

下面是我的docker compose

version: "3"
services:
backend:
build:
context: ./backend
volumes:
- /app/node_modules
- ./backend:/app
nginx:
volumes:
- ./nginx/prod.conf:/etc/nginx/conf.d/default.conf
restart: always
build:
context: ./
ports:
- "80:80"

最佳答案

来自亚马逊文档:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html

The updates use an immutable deployment mechanism. This ensures thatElastic Beanstalk provisions a parallel fleet of Amazon EC2 instanceswith the updates installed before swapping out and terminating theexisting instances.

ECS(弹性容器服务)也有类似的情况。101 是在新版本证明自己稳定之前不会终止旧版本的应用程序,这意味着它将在 X 秒内保持健康状态。您应该能够通过重新配置附加负载均衡器的目标来调整它。

现在,对于 Docker,请检查您的 dockerfile,看看您是否可以从多阶段构建中获益。在我看来,任何更改都会触发 Dockerfile 的几乎所有步骤。 4 分钟的多个 npm run build 似乎并不多。也就是说,如果你引入多阶段构建,你可以将它们分开构建,并在最后阶段复制结果。通过这样做,您应该从 Docker 缓存中受益。

关于Docker 部署到 elasticbeanstalk 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73312443/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com