Setup Docker Registry
We distribute Yeedu as a set of container images that you host in your own container registry. This page applies to all three installation paths (AWS, Azure and GCP), so each cloud-specific step is called out separately. Work through the six steps below in order: create the registry, create one repository per image, download the image tars, authenticate your Docker client, load the tars, then tag and push.
Steps to Setup Docker Registry
-
Create a container registry
Create the registry that matches the cloud you're installing into:
- AWS: Amazon Elastic Container Registry (ECR). Registry URL form:
<aws-account-id>.dkr.ecr.<region>.amazonaws.com - Azure: Azure Container Registry (ACR). Registry URL form:
<acr-name>.azurecr.io - GCP: Google Container Registry (GCR). Registry URL form:
<gcr-location>/<gcp-project-id>(for exampleus.gcr.io/<gcp-project-id>)
You'll set this value later as
YEEDU_SYSTEM_DOCKER_REGISTRY_URL, together withYEEDU_SYSTEM_DOCKER_REGISTRY_PROVIDER(aws,azureorgcp) andYEEDU_SYSTEM_DOCKER_REGISTRY_CREDENTIALS_FILE_PATH, inyeedu-system-config.properties. - AWS: Amazon Elastic Container Registry (ECR). Registry URL form:
-
Create Repositories in Docker Registry
Below are the list of images to be created in the Docker Registry:
- yeedu_reactive_actors
- yeedu_restful_api
- yeedu_ui
- yeedu_rabbitmq
- yeedu_metadata_db
- yeedu_spark
- yeedu_nginx
- yeedu_cfe
- yeedu_redis
- yeedu_telegraf
- yeedu_grafana
- yeedu_influxdb
- yeedu_ldap
- yeedu_assistantx
- yeedu_airflow
- yeedu_functions
- yeedu_vault
-
Download the Docker image tar files
noteReach out to the Yeedu team to get access to the Yeedu release artifacts and to the container registry that holds the Yeedu images.
AWS: the release artifacts, including the image tars, are published under
s3://yeedu-softwares/releases/<YEEDU_VERSION>/. We grant your account read access to that bucket. This is the same command the Yeedu CloudFormation template runs on the control-plane host:mkdir -p /opt/yeedu-software
aws s3 sync s3://yeedu-softwares/releases/<YEEDU_VERSION>/ /opt/yeedu-software/The image tar files land in
/opt/yeedu-software/docker_images_tars/.Azure: copy the image tar files from the ADLS Gen2 storage account that the Yeedu team shares with you:
azcopy copy "https://$storage_account_name.blob.core.windows.net/$container_name/path/to/image.tar" "/local/path/to/image"GCP: we don't ship an automated download step for GCP. Ask the Yeedu team where to fetch the image tar files for your release and copy them to the machine you'll push from.
-
Authenticate your Docker client to the registry
AWS: the command used by the Yeedu CloudFormation template:
aws ecr get-login-password --region $AWS_DEFAULT_REGION \
| docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.comAzure and GCP: we don't ship a login command for these registries. Use the login procedure documented by your cloud provider for ACR or GCR before running the push step below.
-
Load tar files to Docker Images
Once the tars are copied, run the below command to load each tar file.
docker load -i /path/to/image.tar -
Update Docker tag and push to Container Registry
After loading all the tars to docker images, update the docker tag of all images with the name of your container registry and push the image to the specified container registry.
docker tag <image_id> <your_container_registry>/<repository_name>:<tag>
docker push <your_container_registry>/<repository_name>:<tag>Examples, using the registry URL form for each cloud:
# AWS (ECR)
docker tag yeedu_cfe:1.1.2 <aws-account-id>.dkr.ecr.<region>.amazonaws.com/yeedu_cfe:1.1.2
docker push <aws-account-id>.dkr.ecr.<region>.amazonaws.com/yeedu_cfe:1.1.2
# Azure (ACR)
docker tag yeedu_cfe:1.1.2 <acr-name>.azurecr.io/yeedu_cfe:1.1.2
docker push <acr-name>.azurecr.io/yeedu_cfe:1.1.2
# GCP (GCR)
docker tag yeedu_cfe:1.1.2 us.gcr.io/<gcp-project-id>/yeedu_cfe:1.1.2
docker push us.gcr.io/<gcp-project-id>/yeedu_cfe:1.1.2