Files
laravel-docker-k8s/readme.md
Piethein Strengholt d21072ad62 initial commit
2018-05-10 15:28:59 +02:00

123 lines
2.8 KiB
Markdown
Executable File

# laravel-docker-kubernetes
From here you will be able to know that how you will run your Laravel project using Docker and how you will deploy using Kubernetes(minikube)
### Run the project using docker
```
git clone https://github.com/pietheinstrengholt/laravel-docker-k8s
```
Now run the following command from your terminal one by one. Running the commands be sure that you have installed docker.You will get install instructions from this
[link](https://docs.docker.com/)
```sh
docker-compose build
```
```sh
docker-compose up -d
```
Now browse project
```
http://localhost:8181/
```
### Deploy the project using Kubernetes
At first build image running the command:
```sh
docker build . -f ./deploy/dockerfile -t laravel-on-k8s:v1
```
Now login in docker hub. Running the command be sure that you have created an account in docker hub. If not go to the [link](https://hub.docker.com/) and create account.
```
docker login
```
Now run the following command for Pushing image in docker registry.In the command pietheinstrengholt is my docker id and laravel-on-k8s is repository name and v1 is tag name. Modify command according to your docker id, repository name and tag name.
```
docker tag laravel-on-k8s:v1 docker.io/pietheinstrengholt/laravel-on-k8s:v1
```
```
docker push docker.io/pietheinstrengholt/laravel-on-k8s:v1
```
Now run minikube. Running the commands be sure that you have installed minikube.If not installed, you can get install instructions from this [link](https://kubernetes.io/docs/tasks/tools/install-minikube/)
```
minikube start
```
Now run the following commands for deploying your project:
```
kubectl apply -f deploy/app/secret.yml
kubectl apply -f deploy/app/deploy.yml
kubectl apply -f deploy/app/service.yml
```
Now run the following commands to see minikube dashboard:
```
minikube dashboard
```
You will get this url :
```
http://192.168.99.100:30000/#!/overview?namespace=default
```
```
kubectl get svc
```
Running above command you will get following information:
NAME | TYPE | CLUSTER-IP | EXTERNAL-IP | PORT(S) | AGE
---------|---------------|-----------------|----------------|------------|----------
kubernetes | ClusterIP | 10.0.0.1 | <none> | 443/TCP | 27d
laravel-api | LoadBalancer | 10.0.0.11 | <pending> | 80:32676/TCP | 4m
Now you can browse your project using following url :
```
http://192.168.99.100:32676/
```
### Extra Note :
> - If you want to use different database or different port etc, You have to change in the docker-compose.yml file.
> - If you modify .env file, You have to run following command:
```
base64 -b -i deploy/env/.env
```
> - Running the command you will get base 64 encoded string. Put the string in deploy\app\secret.yml. And then run the commands for deploying.