首页 > 解决方案 > cdk 部署选项以重新构建映像

问题描述

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

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

因此 cdk 命令以“无更改”结尾。

如何使用 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"]

谢谢!

标签: amazon-web-servicesaws-cdkaws-fargate

解决方案


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

这种改变起到了作用:

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

推荐阅读