Source
yaml
id: build-aws-ecr-image
namespace: company.team
tasks:
  - id: fetch_auth_token
    type: io.kestra.plugin.aws.ecr.GetAuthToken
    accessKeyId: "{{ secret('AWS_ACCESS_KEY_ID') }}"
    secretKeyId: "{{ secret('AWS_SECRET_ACCESS_KEY') }}"
    region: "{{ secret('AWS_DEFAULT_REGION') }}"
  - id: build
    type: io.kestra.plugin.docker.Build
    dockerfile: |
      FROM python:3.10
      RUN pip install --upgrade pip
      RUN pip install --no-cache-dir kestra requests "polars[all]"
    tags:
      - 123456789.dkr.ecr.eu-central-1.amazonaws.com/data-infastructure:latest
    push: true
    credentials:
      username: AWS
      password: "{{ outputs.fetch_auth_token.token }}"
About this blueprint
DevOps AWS
This flow will build a Docker image and push it to a remote container registry.
- The dockerfileparameter is a multiline string that contains the Dockerfile content. However, it can also be a path to a file.
- The tagsparameter is a list of tags of the image to build. Make sure to set a correct AWS region, and adjust the rest of the image URL to match your ECR repository.
- The pushparameter is a boolean that indicates whether to push the image to the Elastic Container Registry.
- Make sure to securely store your AWS credentials as secrets or environment variables.
- Finally, note how we used the GetAuthTokentask to fetch an access token for thedockercommand. This is necessary to authenticate the task with your ECR registry.
More Related Blueprints
