This repository manages the custom-built docker images for use with CircleCI and development. Each image contains the minimum necessary tools to run testing and development.
The base image contains Python 3.8.x.
Works created by U.S. Federal employees as part of their jobs typically are not eligible for copyright in the United States. In places where the contributions of U.S. Federal employees are not eligible for copyright, this work is in the public domain. In places where it is eligible for copyright, such as some foreign jurisdictions, the remainder of this work is licensed under the MIT License, the full text of which is included in the LICENSE.txt file in this repository.
This repository uses Workflows to build the containers. The main job is a
build
job for historical reasons. The workflows filter on certain branches
that match the releases of the Docker images. Branches that get created in this
repository with any of the following names will not build.
latest
milmove-app
milmove-cypress
milmove-atlantis
milmove-cypress
milmove-infra-tf112
milmove-infra-tf132
The main workflow is named build-containers
and runs test-branch-name
to
check if the name of the branch matches any of the name of the containers that
get built. Take care naming your branches as if the test-branch-name
job
fails, it will not allow the build
command to run which will not allow PRs to
get merged in.
Each image is specifically tailored.
For the latest stable images:
milmove/circleci-docker:latest
milmove/circleci-docker:base
milmove/circleci-docker:milmove-app
milmove/circleci-docker:milmove-cypress
milmove/circleci-docker:milmove-infra-tf112
milmove/circleci-docker:milmove-infra-tf132
milmove/circleci-docker:milmove-atlantis
For static tags, use tags including the git hash. You can find the hashes in this repo, from the CircleCI builds page, or from the Docker Hub tags page.
The base image is the absolute minimum of shared dependencies across all images
In addition to the Base Image this contains:
The Dockerfile
for milmove/circleci-docker:milmove-app-browsers
was deleted
in June 2022 in PR #270.
In addition to the Base Image this contains:
- Terraform at version 0.12.x
- terraform-docs
The code for milmove/circleci-docker:milmove-orders was deleted in February 2021. It is no longer used.
In addition to the Base Image this contained:
The aim of this repository is to always use the latest versions of project dependencies. The fastest way to check
for the latest versions is to use brew upgrade
and compare the versions between your local macOS machine and the
docker containers. This is a bit tricky and involves manual work. Generally run these two scripts:
./scripts/brew-upgrade
./scripts/find-updates
./scripts/find-updates
assumes that the above containers exists locally so you may need to download the images.
docker pull milmove/circleci-docker:latest
docker pull milmove/circleci-docker:base
docker pull milmove/circleci-docker:milmove-app
docker pull milmove/circleci-docker:milmove-cypress
docker pull milmove/circleci-docker:milmove-infra-tf132
docker pull milmove/circleci-docker:milmove-atlantis
This should build cleanly locally, but an updated image needs to exist to verify you have all the things.
make build
Scan the output for mismatched version numbers and then update the appropriate Dockerfile
s.