I am running minikube v0.24.1. In this minikube, I will create a Pod for my nginx application. And also I want to pass data from my local directory.
That means I want to mount my local $HOME/go/src/github.com/nginx
into my Pod
How can I do this?
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:0.1 name: nginx volumeMounts: - mountPath: /data name: volume volumes: - name: volume hostPath: path: /data
So, basically, in Kubernetes, we can inject (mount) file into a container. In my case, I will mount a config file of my application into my docker containers. To do this, I can use the Kubernetes ConfigMap and Volumes, it allows us to inject configuration files into our docker application containers.
You can't mount your local directory into your Pod directly.
First, you need to mount your directory $HOME/go/src/github.com/nginx
into your minikube.
$ minikube start --mount-string="$HOME/go/src/github.com/nginx:/data" --mount
Then If you mount /data
into your Pod using hostPath, you will get you local directory data into Pod.
There is another way
Host's $HOME
directory gets mounted into minikube's /hosthome
directory. Here you will get your data
$ ls -la /hosthome/go/src/github.com/nginx
So to mount this directory, you can change your Pod's hostPath
hostPath: path: /hosthome/go/src/github.com/nginx
I tried out aerokite's solution, but found out that I had to pass --mount
as well as --mount-string "local-path:minikube-path"
to mount a directory in minikube.
minikube start --mount-string ${HOME}/go/src/github.com/nginx:/data --mount
. Spent some time figuring this out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With