User Tools

Site Tools


development:deploying:local_deployments

Local Deployments

Docker Compose

Docker Compose is the easiest way to do local deployments for testing and development.

Prerequisites

Installing Docker Compose

Run the following command to install docker compose:

brew install docker-compose

Deployment Steps

Manual Deployment

Makes sure you are in the build directory by running the following:

cd build

You can use the docker-compose up command to manually spin up containers:

docker-compose up -d --build <container name>

Here are some examples:

docker-compose up -d --build 401k-calculator-api  # spins up the 401k calculator api container
docker-compose up -d --build webapp # spins up the webapp container

You can deploy all of the containers by running the following command:

docker-compose up --build -d

You can bring down all containers by running the following command:

docker-compose down

Makefile deployment

You can find all of the makefile targets here.

Makes sure you are in the build directory by running the following:

cd build

You can deploy (and redeploy) all of the containers by running:

make up_build

Minikube

Minikube is how we can locally deploy our kubernetes cluster.

Prerequisites

Installing Minikube

Run the following command to install minikube:

brew install minikube

Updating your /etc/hosts

We need to update our /etc/hosts file to properly route requests to our minikube cluster. We can do that by adding the following line to /etc/hosts file

127.0.0.1 cultivatefinance.org

You can do that with a single command:

sudo echo '127.0.0.1 cultivatefinance.org' >> /etc/hosts

Deployment Steps

  1. Start Minikube:
    minikube start
  2. Enable ingress to our minikube cluster:
    minikube addons enable ingress
  3. Deploy our services:
    cd build
    make k_deploy_ingress # deploys our ingress
    make k_deploy_webapp # deploys the webapp service
    make k_deploy_nats # deploys our NATS message queue
    make k_deploy_api # deploys our API Gateway
    make k_deploy_401k # deploys our 401k API
  4. Create minikube tunnel (only for macOS):
    sudo minikube tunnel
development/deploying/local_deployments.txt · Last modified: 2024/06/06 16:41 by 127.0.0.1