-
-
Save CodingMonkTech/cafec3a17d2d29f595b01d5b394b0478 to your computer and use it in GitHub Desktop.
FROM php:7.2-fpm | |
COPY app /var/www/ | |
EXPOSE 9000 |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: nginx-config | |
labels: | |
tier: backend | |
data: | |
config : | | |
server { | |
index index.php index.html; | |
error_log /var/log/nginx/error.log; | |
access_log /var/log/nginx/access.log; | |
root /code/app/public; | |
location / { | |
try_files $uri $uri/ /index.php?$query_string; | |
} | |
location ~ .php$ { | |
try_files $uri =404; | |
fastcgi_split_path_info ^(.+.php)(/.+)$; | |
fastcgi_pass php:9000; | |
fastcgi_index index.php; | |
include fastcgi_params; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
fastcgi_param PATH_INFO $fastcgi_path_info; | |
} | |
} |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: nginx | |
labels: | |
tier: backend | |
app: nginx | |
spec: | |
replicas: 2 | |
selector: | |
matchLabels: | |
app: nginx | |
tier: backend | |
template: | |
metadata: | |
labels: | |
app: nginx | |
tier: backend | |
spec: | |
volumes: | |
- name: dir | |
hostPath: | |
path: /code | |
- name: config | |
configMap: | |
name: nginx-config | |
items: | |
- key: config | |
path: site.conf | |
containers: | |
- name: nginx | |
image: nginx | |
volumeMounts: | |
- name: dir | |
mountPath: /code | |
- name: config | |
mountPath: /etc/nginx/conf.d | |
ports: | |
- containerPort: 80 | |
name: http | |
protocol: TCP |
kind: Service | |
apiVersion: v1 | |
metadata: | |
name: nginx | |
labels: | |
tier: backend | |
app: nginx | |
spec: | |
ports: | |
- protocol: TCP | |
port: 80 | |
targetPort: 80 | |
nodePort: 32380 | |
selector: | |
tier: backend | |
app: nginx | |
type: LoadBalancer |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: php | |
labels: | |
tier: backend | |
spec: | |
replicas: 5 | |
selector: | |
matchLabels: | |
app: php | |
tier: backend | |
template: | |
metadata: | |
labels: | |
app: php | |
tier: backend | |
spec: | |
volumes: | |
- name: dir | |
hostPath: | |
path: /code | |
containers: | |
- name: php | |
image: hirenkavad/laravel-k8:1.5.1 | |
volumeMounts: | |
- name: dir | |
mountPath: /code | |
initContainers: | |
- name: install | |
image: busybox | |
volumeMounts: | |
- name: dir | |
mountPath: /code | |
command: | |
- cp | |
- "-r" | |
- "/var/www/." | |
- "/code/app" |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: php | |
labels: | |
tier: backend | |
spec: | |
selector: | |
app: php | |
tier: backend | |
ports: | |
- protocol: TCP | |
port: 9000 |
Also
docker pull hirenkavad/laravel-k8
Using default tag: latest
Error response from daemon: manifest for hirenkavad/laravel-k8:latest not found: manifest unknown: manifest unknown
So did have to pick a version
Error response from daemon: manifest for hirenkavad/laravel-k8:latest not found: manifest unknown: manifest unknown
➜ laravel-k8 git:(master) docker pull hirenkavad/laravel-k8:1.5.1
1.5.1: Pulling from hirenkavad/laravel-k8
8ec398bc0356: Pull complete
85cf4fc86478: Pull complete
970dadf4ccb6: Extracting [=====> ] 8.913MB/76.65MB
8c04561117a4: Download complete
1ddb7fee2951: Download complete
3b816b60f4bf: Download complete
6a671cae4104: Download complete
e9350f4c473a: Download complete
fc574b27512e: Download complete
ca7b19921b25: Waiting
da6a45de7db0: Waiting
64b88a35d7ad: Waiting
..
Also, creating a Dockerfile
from an image is a pain ... https://stackoverflow.com/questions/19104847/how-to-generate-a-dockerfile-from-an-image
Realized that you need to connect your Docker Hub repo to Github and build to load the README.md
and Dockerfile
. I did now and have my first Laravel App image here https://hub.docker.com/r/smart48/laravel-app/dockerfile. Only tagging did not work so I also only have the latest now. But will work that out as well I am sure.
The question is how source code appears in busybox image to copy in mounted /code directory. It doesn't have "/var/www/." directory.
The question is how source code appears in busybox image to copy in mounted /code directory. It doesn't have "/var/www/." directory.
If you could share your updated code that would be great for all @faridmmv . Thanks in advance for your contribution!
Should we not use something like
like used by Li0nel https://github.com/li0nel/laravel-terraform/blob/master/Dockerfile so we can add PHP FPM with needed extensions, composer, memory limit and so on . Did check https://hub.docker.com/r/hirenkavad/laravel-k8 but cannot see what it contains nor is a Github repo attached to it..