Skip to main content
Version: v2.10.0

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

  1. 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 example us.gcr.io/<gcp-project-id>)

    You'll set this value later as YEEDU_SYSTEM_DOCKER_REGISTRY_URL, together with YEEDU_SYSTEM_DOCKER_REGISTRY_PROVIDER (aws, azure or gcp) and YEEDU_SYSTEM_DOCKER_REGISTRY_CREDENTIALS_FILE_PATH, in yeedu-system-config.properties.

  2. 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
  3. Download the Docker image tar files

    note

    Reach 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.

  4. 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.com

    Azure 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.

  5. 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
  6. 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