Docker is podman, for all intents and purposes 🙂
Pulumi is not for pushing images to ECR. Pulumi can do it via the Docker provider (which can be configured to use podman, iirc). However, pushing an image is usually something that happens in your build pipeline, not your deploy pipeline.
Typically:
1. You would have a Pulumi project for building your app-deployment infrastructure, including ECR and whatever infra you run your app in. This is deployed very, very rarely.
2. You would have a "normal" build that builds images and pushes them to the ECR repo built in step 1. This happens very, very frequently.
3. You would have a "normal" deployment pipeline, that may use a Pulumi project, Octopus, bespoke code, or whatever you use to deploy your app from ECR to your app infrastructure. It may be triggered from step 2 (CD), or maybe a bit less frequently than that (gated / triggered deployments).
Crucially, the code that creates your ECR instance isn't invoked when building or deploying your app.
There are of course lots of other use cases, and maybe you do need to update your lambda and your ECR in one project.