File tree 6 files changed +72
-19
lines changed
6 files changed +72
-19
lines changed Original file line number Diff line number Diff line change @@ -95,7 +95,7 @@ Let's build the front end:
95
95
96
96
To deploy locally, we need to link to ` demo-mysql ` and add environmental variables with ` -e ` :
97
97
98
- docker run --name my-first-app -d -p 8080:8080 --link demo-mysql:remote-mysql -e MYSQL_USER=root -e MYSQL_PASS=<PASSWORD> webapp
98
+ docker run --name my-first-app -d -p 8080:8080 --link demo-mysql:remote-mysql -e MYSQL_USER=root -e MYSQL_PASS=<PASSWORD> -e MYSQL_SERVER=remote-mysql webapp
99
99
100
100
Now you can access in your browser at [ http://localhost:8080 ] ( http://localhost:8080 )
101
101
@@ -139,6 +139,6 @@ In this case you need to expose 8080 to 80 and use the correct image name
139
139
docker run --name my-first-app -d -p 80:8080 --link demo-mysql:remote-mysql -e MYSQL_USER=root -e MYSQL_PASS=<PASSWORD> mgckind/my-demo-app:1.0.0
140
140
141
141
142
- ## Deployment -- the less simple way but still easy
142
+ ## Deployment on Kubernetes -- the less simple way but still easy
143
143
144
- Using [ Kubernetes] ( https://kubernetes.io/ ) , note that GKE and AWS provide Kubernetes cluster as a Service.
144
+ Using [ Kubernetes] ( https://kubernetes.io/ ) , note that GKE and AWS provide Kubernetes cluster as a Service. See [ folder ] ( kubernetes/ )
Original file line number Diff line number Diff line change @@ -4,13 +4,13 @@ metadata:
4
4
name : demo-app
5
5
annotations :
6
6
# ingress.kubernetes.io/ssl-redirect: "false"
7
- kubernetes.io/ingress.class : " nginx "
7
+ kubernetes.io/ingress.class : " deslabs "
8
8
spec :
9
9
rules :
10
10
- http :
11
11
paths :
12
12
- path : /demo
13
13
backend :
14
14
serviceName : demo-app
15
- servicePort : 8080
15
+ servicePort : 8081
16
16
Original file line number Diff line number Diff line change 1
1
apiVersion : v1
2
+ kind : Secret
3
+ data :
4
+ passwd : bGluZWE=
5
+ metadata :
6
+ name : mysql-secret
7
+ namespace : default
8
+ type : Opaque
9
+ ---
10
+ kind : PersistentVolume
11
+ apiVersion : v1
12
+ metadata :
13
+ name : remote-mysql
14
+ spec :
15
+ storageClassName : manual
16
+ capacity :
17
+ storage : 30Gi
18
+ accessModes :
19
+ - ReadWriteMany
20
+ hostPath :
21
+ path : /home/matias/kubedata/external/demo_mysql
22
+
23
+ ---
24
+ kind : PersistentVolumeClaim
25
+ apiVersion : v1
26
+ metadata :
27
+ name : remote-mysql
28
+ namespace : default
29
+ spec :
30
+ storageClassName : manual
31
+ accessModes :
32
+ - ReadWriteMany
33
+ resources :
34
+ requests :
35
+ storage : 30Gi
36
+ volumeName : remote-mysql
37
+
38
+ ---
39
+ apiVersion : v1
2
40
kind : Service
3
41
metadata :
4
42
name : remote-mysql
9
47
selector :
10
48
app : mysql
11
49
---
12
- apiVersion : apps/v1beta1
50
+ apiVersion : apps/v1
13
51
kind : Deployment
14
52
metadata :
15
53
name : mysql
16
54
spec :
17
- strategy :
18
- type : Recreate
55
+ selector :
56
+ matchLabels :
57
+ app : mysql
19
58
template :
20
59
metadata :
21
60
labels :
34
73
ports :
35
74
- containerPort : 3306
36
75
name : mysql
76
+ volumeMounts :
77
+ - name : mysql-persistent-storage
78
+ mountPath : /var/lib/mysql
79
+ volumes :
80
+ - name : mysql-persistent-storage
81
+ persistentVolumeClaim :
82
+ claimName : remote-mysql
83
+
Original file line number Diff line number Diff line change @@ -5,24 +5,25 @@ metadata:
5
5
spec :
6
6
type : NodePort
7
7
ports :
8
- - port : 8080
8
+ - port : 8081
9
9
selector :
10
10
app : demo-app
11
11
---
12
- apiVersion : apps/v1beta1
12
+ apiVersion : apps/v1
13
13
kind : Deployment
14
14
metadata :
15
15
name : demo-app
16
16
spec :
17
- strategy :
18
- type : Recreate
17
+ selector :
18
+ matchLabels :
19
+ app : demo-app
19
20
template :
20
21
metadata :
21
22
labels :
22
23
app : demo-app
23
24
spec :
24
25
containers :
25
- - image : mgckind/my- demo-app:kube-1.0
26
+ - image : mgckind/demo-app-pie:1.1
26
27
imagePullPolicy : IfNotPresent
27
28
name : demo-app
28
29
env :
33
34
key : passwd
34
35
- name : MYSQL_USER
35
36
value : " root" # # <----
37
+ - name : MYSQL_SERVER
38
+ value : " remote-mysql"
39
+ - name : MYSQL_PORT
40
+ value : " 3306"
36
41
ports :
37
- - containerPort : 8080
42
+ - containerPort : 8081
38
43
name : demo-app
Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ RUN pip install --no-cache-dir tornado gviz_api mysqlclient
5
5
# Create a demo folder
6
6
RUN mkdir demo
7
7
# Copy all the files inside the demo folder
8
- COPY . /demo
8
+ ADD . /demo
9
9
# Change to /demo at run-time
10
10
WORKDIR /demo
11
11
# Execute this command when running the container, can be override
Original file line number Diff line number Diff line change 10
10
11
11
# Configuration parameters to connect to MYSQL
12
12
CONF = {}
13
- CONF ['host' ] = 'remote-mysql' #'127.0.0.1'
14
- CONF ['port' ] = int ('3306' )
13
+ CONF ['host' ] = os . environ [ 'MYSQL_SERVER' ] # 'remote-mysql' #'127.0.0.1'
14
+ CONF ['port' ] = int ('3306' ) # 3306
15
15
CONF ['user' ] = os .environ ['MYSQL_USER' ]
16
16
CONF ['passwd' ] = os .environ ['MYSQL_PASS' ]
17
17
18
18
# schema for google pie chart
19
19
schema = {"topic" : ("string" , "Topic" ), "times" : ("number" , "Times" )}
20
20
21
- # will run by default on port 8080
22
- define ("port" , default = 8080 , help = "run on the given port" , type = int )
21
+ # will run by default on port 8081
22
+ define ("port" , default = 8081 , help = "run on the given port" , type = int )
23
23
24
24
def init_table ():
25
25
"""
@@ -78,6 +78,7 @@ def get_data():
78
78
79
79
class MainHandler (tornado .web .RequestHandler ):
80
80
def get (self ):
81
+ init_table ()
81
82
self .render ("main.html" , hostname = platform .node ())
82
83
83
84
class GetDataHandler (tornado .web .RequestHandler ):
You can’t perform that action at this time.
0 commit comments