【问题标题】:cdk deploy option to re-build imagecdk 部署选项以重新构建映像
【发布时间】:2021-11-05 11:04:26
【问题描述】:

我正在使用 AWS Fargate 部署一个新堆栈,我正在 python 中使用 cdk。

当我执行cdk deploy 时,Docker 映像已构建并推送到 ECR 中,但是当我在我的 Dockerfile 中复制的 entrypoint.sh 中进行更改时,cdk 不会检测到此更改。

所以 cdk 命令以“no changes”结束。

如何用cdk重新构建和更新docker镜像?

这是我创建服务的代码

back = aws_ecs_patterns.ApplicationLoadBalancedFargateService(
    self,
    "back",
    cpu=256,
    task_image_options=aws_ecs_patterns.ApplicationLoadBalancedTaskImageOptions(
        image=ecs.ContainerImage.from_asset('./back'),
    ),
    desired_count=2,
    memory_limit_mib=512,
    public_load_balancer=True,
)

这是我的 Dockerfile

FROM python:3.8

ENV PYTHONUNBUFFERED=1

WORKDIR /app

RUN apt update && apt install -y python3-dev libpq-dev wait-for-it

COPY requirements.txt /app

RUN pip install -r requirements.txt

COPY . /app

ENTRYPOINT ["/app/entrypoint.sh"]

谢谢!

【问题讨论】:

  • 如果您尝试重用相同的 docker 标签,则大多数容器编排工具都无法使用。每次重建 docker 映像时,它都需要一个新标签,并且您需要更新任务定义中的标签

标签: amazon-web-services aws-cdk aws-fargate


【解决方案1】:

./back 目录是一个符号链接。

这个改变成功了:

image=ecs.ContainerImage.from_asset(
    './back',
    follow_symlinks=cdk.SymlinkFollowMode.ALWAYS,
),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2021-06-13
    相关资源
    最近更新 更多