Можно ли использовать docker-compose для развертывания ecs farget с помощью cdk?
Текущий, мой исходный код здесь ниже
export class CdkFargateStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
const cluster = new ecs.Cluster(this, "SampleCluster", {
clusterName: "SmapleCluster"
});
const taskDefinition = new ecs.FargateTaskDefinition(this, "TaskDef");
const container = taskDefinition.addContainer("DefaultContainer", {
image: ecs.ContainerImage.fromAsset("app"),
memoryLimitMiB: 512,
cpu: 256
});
container.addPortMappings({
containerPort: 3000
});
const ecsService = new ecs.FargateService(this, "Service", {
cluster,
taskDefinition,
desiredCount: 2
});
const lb = new elb.ApplicationLoadBalancer(this, "LB", {
vpc: cluster.vpc,
internetFacing: true
});
const listener = lb.addListener("Listener", { port: 80 });
const targetGroup = listener.addTargets("ECS", {
protocol: elb.ApplicationProtocol.HTTP,
port: 3000,
targets: [ecsService]
});
new cdk.CfnOutput(this, "LoadBalancerDNS", {
value: lb.loadBalancerDnsName
});
}
}
Строит Dockerfile в каталоге app (app/Dockerfile)
и это хорошо работает.
Однако теперь я хочу использовать два докера, написанных на docker-compose.yml,
Dockerfile.django и Dockerfile.nginx собраны в docker-compose.
Есть файлы
app/docker-compose.yml
app/Dockerfile.nginx
app/Dockerfile.django
В отличие от Dockerfile, он создает два образа докера.
Итак, моя идея заключается в следующем
1) Игнорировать docker-compose.yml и сделать два контейнера каким-то образом? (Хотя я хочу указать имя файла docker,)
const container1 = taskDefinition.addContainer("DefaultContainer", {
image: ecs.ContainerImage.fromAsset("app/Dockerfile.django"),
memoryLimitMiB: 512,
cpu: 256
});
const container2 = taskDefinition.addContainer("DefaultContainer", {
image: ecs.ContainerImage.fromAsset("app/Dockerfile.ngingx"),
memoryLimitMiB: 512,
cpu: 256
});
Я могу использовать docker-compose.yml непосредственно из cdk?
Не могли бы вы дать мне несколько отправных точек.