fix: 40GB disk for docker Spot instances (monorepo + Docker layers)

This commit is contained in:
2026-05-23 15:24:48 +01:00
parent 84d0ebff48
commit 004f18a176
3 changed files with 16 additions and 0 deletions
Binary file not shown.
Binary file not shown.
+16
View File
@@ -309,6 +309,12 @@ func startSpotRunner(ctx context.Context, c cfg, label, runID string) (string, e
client := ec2.NewFromConfig(awsCfg) client := ec2.NewFromConfig(awsCfg)
// Docker builds need more disk (monorepo + layers)
diskSize := int32(20)
if label == "docker" {
diskSize = 40
}
out, err := client.RunInstances(ctx, &ec2.RunInstancesInput{ out, err := client.RunInstances(ctx, &ec2.RunInstancesInput{
ImageId: aws.String(c.AMI), ImageId: aws.String(c.AMI),
InstanceType: ec2types.InstanceType(spot.InstanceType), InstanceType: ec2types.InstanceType(spot.InstanceType),
@@ -316,6 +322,16 @@ func startSpotRunner(ctx context.Context, c cfg, label, runID string) (string, e
MaxCount: aws.Int32(1), MaxCount: aws.Int32(1),
UserData: aws.String(userData), UserData: aws.String(userData),
// Root volume — bigger for Docker builds
BlockDeviceMappings: []ec2types.BlockDeviceMapping{{
DeviceName: aws.String("/dev/xvda"),
Ebs: &ec2types.EbsBlockDevice{
VolumeSize: aws.Int32(diskSize),
VolumeType: ec2types.VolumeTypeGp3,
DeleteOnTermination: aws.Bool(true),
},
}},
// Spot request // Spot request
InstanceMarketOptions: &ec2types.InstanceMarketOptionsRequest{ InstanceMarketOptions: &ec2types.InstanceMarketOptionsRequest{
MarketType: ec2types.MarketTypeSpot, MarketType: ec2types.MarketTypeSpot,