Deploying Infrastructure Updates with Docker Tags
Quick Reference
# Set custom image tag
export DATA_LAKE_ETL_IMAGE_TAG=sha-XXXXX
# Preview changes
NX_TUI=false pnpm nx pulumi data-lake-infra -- preview --stack dev
# Deploy
NX_TUI=false pnpm nx pulumi data-lake-infra -- up --stack dev
Finding Docker Tags from GitHub Actions
Location: [PLACEHOLDER: GitHub Actions workflow URL pattern]
- Navigate to GitHub Actions → Latest successful workflow run of you PR
- Find the
Build & PackStage - Find the
packagestep output for the specific stack e.g.data-lake-ingest:pack - Look for
docker tagstep - Extract
releasefield value (format:sha-{short-commit})
Deploying with Custom Tags
Environment Variable Format
{REPO_NAME}_IMAGE_TAG=sha-{commit}
Examples:
DATA_LAKE_ETL_IMAGE_TAG=sha-8dc9e82DATA_LAKE_COLLECTOR_IMAGE_TAG=sha-829d5d5DATA_WAREHOUSE_INGEST_IMAGE_TAG=sha-{commit}
Tag Resolution Priority
- Custom repo tag:
{REPO_NAME}_IMAGE_TAG(highest priority) - Global override:
IMAGE_TAG
See: packages/shared/infra/infra-core/src/lib/image.ts:139-208
Common Projects
| Project | Repository | Example Tag Var |
|---|---|---|
data-lake-infra | data-lake-etl | DATA_LAKE_ETL_IMAGE_TAG |
data-lake-infra | data-lake-collector | DATA_LAKE_COLLECTOR_IMAGE_TAG |
data-lake-infra | data-lake-orchestration | DATA_LAKE_ORCHESTRATION_IMAGE_TAG |
data-warehouse-infra | data-warehouse-ingest | DATA_WAREHOUSE_INGEST_IMAGE_TAG |
Troubleshooting
Image Tag Not Found
Error: Image with tag sha-xxx not found in repository
Solution:
- Verify tag exists in ECR:
aws ecr describe-images --repository-name cartesianio/{repo-name} --image-ids imageTag=sha-xxx - Check GitHub Actions workflow completed successfully
- Ensure correct commit SHA format
Tag Resolution Issues
Check tag resolution order:
- Pulumi logs show
[CUSTOM],[OVERRIDE],[RELEASE], or[DEPLOYED] - Verify environment variable is set:
echo $DATA_LAKE_ETL_IMAGE_TAG - Check
build-info.jsonexists:cat packages/data-lake/data-lake-etl/dist/build-info.json
References
- Tag resolution logic:
packages/shared/infra/infra-core/src/lib/image.ts - Build info structure:
packages/data-lake/data-lake-etl/dist/build-info.json - ECR registry:
[PLACEHOLDER: ECR registry URL] - Pulumi console:
https://app.pulumi.com/cartesianio/{project}/{stack}