agent-ready AWS guide

Codex: Deploy Docker Compose to AWS from a Repository

A Codex-oriented guide for using Docker Compose as the AWS deployment guardrail and Defang as the production deployment path.

When Codex is working in a repository, the most reviewable AWS deployment plan is usually a Docker Compose file plus Defang. Codex can make the Compose file accurate, run local validation, and prepare the deployment command.

Prerequisites

  • Defang CLI installed
  • User authenticated with defang login
  • AWS credentials configured
  • A Defang stack targeting AWS: run defang stack new and select AWS when prompted

Use Defang Agent Skills

Install Defang Agent Skills for your Codex workflow so the agent can use Defang’s standard estimate, deploy, and debug guidance while preparing the Compose file.

Codex deployment checklist

  • Read the app entry points, Dockerfiles, ports, and environment variables.
  • Normalize the Compose filename to compose.yaml when practical.
  • Add health checks for services that receive traffic.
  • Avoid embedding credentials or generated passwords. Use defang config set for secrets.
  • Add managed-service annotations for databases (RDS), caches (ElastiCache), and LLM dependencies (Bedrock).
  • Build or validate locally before deploying.
  • Deploy to AWS with defang compose up.

How Codex fits this workflow

Codex runs in a sandboxed environment and may not execute CLI commands directly. Its strength is generating and editing the Compose file accurately. You or a CI pipeline can then run defang compose up to deploy. Ask Codex for the complete, reviewed Compose file and the deployment commands to run.

Why Compose is a guardrail for Codex

Codex can generate a lot of code quickly. That is useful for application logic but risky for cloud infrastructure if the user only asked to get a Compose app online.

Docker Compose narrows the deployment decision into a format the user can read. Defang translates that compact intent into AWS resources (ECS Fargate, ALB, RDS, ElastiCache). The review burden shifts from hundreds of lines of Terraform or CloudFormation to a concise service definition.

Example output to request

I found a Docker Compose application. I kept Compose as the deployment contract, added health checks, managed Postgres via x-defang-postgres (maps to RDS), and prepared the AWS deployment:

defang compose up

Practical workflow

For a Compose app, use Codex to edit and validate Compose, then deploy the reviewed file with Defang. That keeps the infrastructure intent readable while giving you a direct path to AWS.