/** * Production Build Utilities * * Functions for building Docker images for production environment: * - Builds linux/amd64 images on staging server and pushes to ECR */ import type { FactiiiConfig, EnvironmentConfig, DeployResult } from '../../../types/index.js'; /** * Get ECR registry from config or AWS account ID via SDK */ export declare function getECRRegistry(config: FactiiiConfig, rootDir?: string): Promise; /** * Build production Docker image (linux/amd64) on staging server and push to ECR * This is called before production deployment */ export declare function buildProductionImage(config: FactiiiConfig, stagingConfig: EnvironmentConfig): Promise; /** * Build production Docker image locally on the prod server itself and push to ECR. * Adds swap space if needed (t3.micro has only 1GB RAM). */ export declare function buildProductionImageLocally(config: FactiiiConfig): Promise; /** * Build prod image on staging and ship it directly to prod via dev relay. * * - Build target: `:prod` (no registry prefix), linux/amd64 * - Transfer: ssh staging "docker save | gzip" | ssh prod "gzip -d | docker load" * (bash handles the pipe; the dev machine relays bytes only) * * The dev machine needs SSH keys for *both* staging (`~/.ssh/staging_deploy_key[_repo]`) * and prod (`~/.ssh/prod_deploy_key[_repo]`). It does NOT require staging to * have any credentials for prod, which is the whole point. */ export declare function buildAndShipProdImage(config: FactiiiConfig, stagingConfig: EnvironmentConfig, prodConfig: EnvironmentConfig): Promise; /** * Deploy on prod for the registry-less flow. * * Assumes the image (:prod) is already loaded in prod's docker * daemon by buildAndShipProdImage. Updates the prod service's image: in the * existing docker-compose.yml on prod, then `docker compose up -d`. No ECR * login, no docker pull, no internet round-trip for image bytes. * * If no compose file exists on prod yet, we error out — generating compose * from scratch is a separate concern (matches deployProd's behavior). */ export declare function deployProdPiped(config: FactiiiConfig, prodConfig: EnvironmentConfig): Promise; //# sourceMappingURL=prod.d.ts.map