As our focus is on the application “social network”, let us explore its source code by checking out the important sub-folders inside the directory “socialNetwork”.
Folder “socialNetwork”
The Dockerfile in the directory named “socialNetwork” will be used to build the docker image “social-network-microservices” which will then be pushed to “Dockerhub” repository.
The “socialNetwork” directory includes a sub-directory named “docker”. Within the “docker” directory are folders named ‘mcrouter’, ‘media-frontend’, ‘openresty-thrift’ and ‘thrift-microservice-deps’. Each folder has its own “Dockerfile” that will be used to build docker images for the specific service and the image is then pushed to “Dockerhub”.
Folder “socialNetwork/docker”
Another important directory within the “socialNetwork” folder is named “helm-chart”. This directory includes a sub-directory named “socialnetwork”, which contains the “values.yaml” file. This file has the global configuration settings for the social network app. All the modules that are part of the social network app are listed under socialnetwork/charts directory. Each chart has its own values.yaml file that contains the configuration settings for the service deployed by the chart. These files will need to be modified in order to make the services compatible with Arm64 (Please check later sections where we create docker image containers for Arm64 from Bitnami charts and replace the old Dockerhub “username:tag” with the new dockerhub “username:tag” in the file “values.yaml”. Additional details about the modifications are listed in later sections).
Folder socialNetwork/helm-chart
The “.tgz” files in the directory “socialnetwork/charts” are compressed chart modules for ‘mcrouter’, ‘mongodb-sharded', 'redis-cluster’. To modify these chart modules, we need to untar (decompress) them into their respective chart folders and modify the “yaml” files as needed. Detailed steps are listed in the next section.
Folder socialNetwork/helm-chart/charts