If you have no existing installation of minikube on your computer, follow the official tutorial.
When Minikube is installed, start the cluster:
minikube start --addons registry --addons dashboard
The previous command starts minikube with a Docker registry (we’ll use it in the next step) and with the Kubernetes dashboard.
Finally, install Helm. We’ll use it to deploy the application in the cluster thanks to the chart provided in the API Platform distribution.
On GNU/Linux and macOS, run the following command to point your terminal’s docker-cli to the Docker Engine inside minikube:
eval $(minikube docker-env)
Now any docker
command you run in this current terminal will run against the Docker Engine inside the minikube cluster. For detailed explanation and instructions for Windows visit official minikube documentation.
Build the images in minikube:
docker build -t localhost:5000/php api --target frankenphp_prod
docker build -t localhost:5000/pwa pwa --target prod
Then push the images in the registry available in minikube:
docker push localhost:5000/php
docker push localhost:5000/pwa
Fetch Helm chart dependencies:
helm repo add bitnami https://charts.bitnami.com/bitnami/
helm dependency build helm/api-platform
Finally, deploy the project using the Helm chart:
helm upgrade --install my-project helm/api-platform \
--set php.image.repository=localhost:5000/php \
--set php.image.tag=latest \
--set pwa.image.repository=localhost:5000/pwa \
--set pwa.image.tag=latest
Copy and paste the commands displayed in the terminal to enable the port forwarding then go to http://localhost:8080
to access your application!
Run minikube dashboard
at any moment to see the state of your deployments.
Skaffold is a tool for Kubernetes development: https://skaffold.dev/.
It will build and deploy automatically your app in Kubernetes and apply every changes. The default configuration use minikube and helm. More configurations are available in Skaffold documentation.
First, install the skaffold CLI.
Then, run minikube:
minikube start
Add Skaffold configuration in the file ./helm/skaffold.yaml
. You can find a complete configuration file for minikube with its Helm values override.
Finally, go to the helm folder, and run skaffold in dev mode:
cd ./helm
skaffold dev
Made with love by
Les-Tilleuls.coop can help you design and develop your APIs and web projects, and train your teams in API Platform, Symfony, Next.js, Kubernetes and a wide range of other technologies.
Learn more