Remind's standardized script and CircleCI Orb for building and pushing Docker images.
Example usage in a .circleci/config.yml file:
version: 2.1
orbs:
docker-build: remind101/docker-build@1
workflows:
main:
jobs:
- docker-build/build-push:
context:
- docker-hub
- aws-ecrSee docker-build --help for more information on available commands.
Images are built using automatic --cache-from settings, with the
equivalent of the docker build . command.
Images are named after the repository that docker-build is being run on,
which is computed using the built-in CircleCI env vars:
$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME.
Multiple images are tagged by default:
latest${CIRCLECI_BRANCH}${CIRCLECI_BRANCH}-${CIRCLECI_BUILD_NUM}${CIRCLECI_SHA1}
Images are published to Docker Hub and ECR.
The following env vars are required:
DOCKER_USERDOCKER_PASSAWS_ECR_ACCOUNT_URLAWS_REGIONAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
When pushing to ECR, vulnerability scanning is performed automatically.
The orb also installs an ECR lifecycle policy by default. This policy reduces
the accumulation of unused images by expiring all images expect for those with
tags that have a master or main prefix after 90 days. Thus, this policy
assumes that images that are deployed come from the main or master
branches, and are tagged using ${CIRCLECI_BRANCH}-${CIRCLECI_BUILD_NUM}.
To release a new version, tag the release commit with vX.Y.Z (e.g. v1.2.3)
and git push --tags. CircleCI will publish release versions for any tag
starting with v.