Skip to content

Commit 18b9d97

Browse files
committed
deploy: d0267ee
1 parent bc5f6c7 commit 18b9d97

25 files changed

+35
-23
lines changed

practicals/button-instructor.pdf

0 Bytes
Binary file not shown.

practicals/button.pdf

0 Bytes
Binary file not shown.

practicals/week01-instructor.pdf

0 Bytes
Binary file not shown.

practicals/week01.pdf

0 Bytes
Binary file not shown.

practicals/week02-instructor.pdf

0 Bytes
Binary file not shown.

practicals/week02.pdf

0 Bytes
Binary file not shown.

practicals/week03-instructor.pdf

1 Byte
Binary file not shown.

practicals/week03.pdf

46 Bytes
Binary file not shown.

practicals/week03/index.html

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2125,23 +2125,35 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
21252125
class="ectt-1200">&#x00A0;</span><span style="color:#000000"><span
21262126
class="ectt-1200">SQLALCHEMY_DATABASE_URI</span></span><span style="color:#000000"><span
21272127
class="ectt-1200">:</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
2128+
class="ectt-1200">"</span></span><span style="color:#000000"><span
21282129
class="ectt-1200">postgresql</span></span><span style="color:#000000"><span
2129-
class="ectt-1200">://</span></span><span style="color:#000000"><span
2130+
class="ectt-1200">:\</span></span>
2131+
<span class="label"><a
2132+
id="x1-25016r16"></a></span><span
2133+
class="ectt-1200">&#x00A0;</span><span
2134+
class="ectt-1200">&#x00A0;</span><span
2135+
class="ectt-1200">&#x00A0;</span><span
2136+
class="ectt-1200">&#x00A0;</span><span
2137+
class="ectt-1200">&#x00A0;</span><span
2138+
class="ectt-1200">&#x00A0;</span><span
2139+
class="ectt-1200">&#x00A0;</span><span style="color:#000000"><span
2140+
class="ectt-1200">//</span></span><span style="color:#000000"><span
21302141
class="ectt-1200">administrator</span></span><span style="color:#000000"><span
21312142
class="ectt-1200">:</span></span><span style="color:#000000"><span
21322143
class="ectt-1200">verySecretPassword@database</span></span><span style="color:#000000"><span
21332144
class="ectt-1200">:5432/</span></span><span style="color:#000000"><span
2134-
class="ectt-1200">todo</span></span>
2145+
class="ectt-1200">todo</span></span><span style="color:#000000"><span
2146+
class="ectt-1200">"</span></span>
21352147
<span class="label"><a
2136-
id="x1-25016r16"></a></span><span
2148+
id="x1-25017r17"></a></span><span
21372149
class="ectt-1200">&#x00A0;</span><span
21382150
class="ectt-1200">&#x00A0;</span><span
21392151
class="ectt-1200">&#x00A0;</span><span
21402152
class="ectt-1200">&#x00A0;</span><span style="color:#000000"><span
21412153
class="ectt-1200">ports</span></span><span style="color:#000000"><span
21422154
class="ectt-1200">:</span></span>
21432155
<span class="label"><a
2144-
id="x1-25017r17"></a></span><span
2156+
id="x1-25018r18"></a></span><span
21452157
class="ectt-1200">&#x00A0;</span><span
21462158
class="ectt-1200">&#x00A0;</span><span
21472159
class="ectt-1200">&#x00A0;</span><span
@@ -2151,15 +2163,15 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
21512163
class="ectt-1200">-</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
21522164
class="ectt-1200">"6400:6400"</span></span>
21532165
<span class="label"><a
2154-
id="x1-25018r18"></a></span><span
2166+
id="x1-25019r19"></a></span><span
21552167
class="ectt-1200">&#x00A0;</span><span
21562168
class="ectt-1200">&#x00A0;</span><span
21572169
class="ectt-1200">&#x00A0;</span><span
21582170
class="ectt-1200">&#x00A0;</span><span style="color:#000000"><span
21592171
class="ectt-1200">depends_on</span></span><span style="color:#000000"><span
21602172
class="ectt-1200">:</span></span>
21612173
<span class="label"><a
2162-
id="x1-25019r19"></a></span><span
2174+
id="x1-25020r20"></a></span><span
21632175
class="ectt-1200">&#x00A0;</span><span
21642176
class="ectt-1200">&#x00A0;</span><span
21652177
class="ectt-1200">&#x00A0;</span><span
@@ -2170,36 +2182,36 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
21702182
class="ectt-1200">database</span></span>
21712183

21722184
<span class="label"><a
2173-
id="x1-25020r20"></a></span></pre>
2185+
id="x1-25021r21"></a></span></pre>
21742186
</div>
2175-
<!--l. 636--><p class="indent" > We can now run our application and database with the following command within the root directory.
2187+
<!--l. 637--><p class="indent" > We can now run our application and database with the following command within the root directory.
21762188
</p>
21772189
<div class="framedenv" id="shaded*-1">
2178-
<!--l. 638-->
2190+
<!--l. 639-->
21792191
<pre class="lstlisting" id="listing-38"><span class="label"><a
2180-
id="x1-25021r1"></a></span><span style="color:#000000"><span
2192+
id="x1-25022r1"></a></span><span style="color:#000000"><span
21812193
class="ectt-1200">$</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
21822194
class="ectt-1200">docker</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
21832195
class="ectt-1200">compose</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
21842196
class="ectt-1200">up</span></span><span
21852197
class="ectt-1200">&#x00A0;</span></pre>
21862198
</div>
2187-
<!--l. 640--><p class="indent" > Observe the output of this command and you can see two containers running. One is the database, <span
2199+
<!--l. 641--><p class="indent" > Observe the output of this command and you can see two containers running. One is the database, <span
21882200
class="ectt-1200">database</span>,
21892201
and the other is our application, <span
21902202
class="ectt-1200">app</span>. We can now navigate to <a
21912203
href="http://localhost:6400" class="url" ><span
21922204
class="ectt-1200">http://localhost:6400</span></a> to access our running
21932205
application.
2194-
</p><!--l. 644--><p class="indent" > In reality though our database probably did not have enough time to start up before our application tried to
2206+
</p><!--l. 645--><p class="indent" > In reality though our database probably did not have enough time to start up before our application tried to
21952207
connect to it. We can fix this by adding a delay to our application startup. To do this we will change the <span
21962208
class="ectt-1200">CMD</span>
21972209
instruction to the following line in our <span
21982210
class="ectt-1200">Dockerfile</span>:
21992211
</p>
22002212
<div class="framedenv" id="code-1">
2201-
<!--l. 648--><pre class="listings" id="listing-39"><span class="label"><a
2202-
id="x1-25022r1"></a></span><span style="color:#33997E"><span
2213+
<!--l. 649--><pre class="listings" id="listing-39"><span class="label"><a
2214+
id="x1-25023r1"></a></span><span style="color:#33997E"><span
22032215
class="ectt-1200">#</span></span><span style="color:#33997E"> </span><span style="color:#33997E"><span
22042216
class="ectt-1200">Adding</span></span><span style="color:#33997E"> </span><span style="color:#33997E"><span
22052217
class="ectt-1200">a</span></span><span style="color:#33997E"> </span><span style="color:#33997E"><span
@@ -2209,7 +2221,7 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
22092221
class="ectt-1200">application</span></span><span style="color:#33997E"> </span><span style="color:#33997E"><span
22102222
class="ectt-1200">startup</span></span>
22112223
<span class="label"><a
2212-
id="x1-25023r2"></a></span><span style="color:#006699"><span
2224+
id="x1-25024r2"></a></span><span style="color:#006699"><span
22132225
class="ectt-1200">CMD</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
22142226
class="ectt-1200">[</span></span><span style="color:#669900"><span
22152227
class="ectt-1200">"</span></span><span style="color:#669900"><span
@@ -2236,7 +2248,7 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
22362248
class="ectt-1200">run</span></span><span style="color:#669900"> </span><span style="color:#669900"><span
22372249
class="ectt-1200">\</span></span>
22382250
<span class="label"><a
2239-
id="x1-25024r3"></a></span><span
2251+
id="x1-25025r3"></a></span><span
22402252
class="ectt-1200">&#x00A0;</span><span
22412253
class="ectt-1200">&#x00A0;</span><span
22422254
class="ectt-1200">&#x00A0;</span><span style="color:#669900"><span
@@ -2250,16 +2262,16 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
22502262
class="ectt-1200">]</span></span>
22512263

22522264
<span class="label"><a
2253-
id="x1-25025r4"></a></span></pre>
2265+
id="x1-25026r4"></a></span></pre>
22542266
</div>
2255-
<!--l. 654--><p class="indent" > In a real application you would want it to retry connecting to the database if it fails, but for simplicity now we
2267+
<!--l. 655--><p class="indent" > In a real application you would want it to retry connecting to the database if it fails, but for simplicity now we
22562268
will just add a delay. We can now rebuild our Docker image and run our application and database with the
22572269
following command:
22582270
</p>
22592271
<div class="framedenv" id="shaded*-1">
2260-
<!--l. 658-->
2272+
<!--l. 659-->
22612273
<pre class="lstlisting" id="listing-40"><span class="label"><a
2262-
id="x1-25026r1"></a></span><span style="color:#000000"><span
2274+
id="x1-25027r1"></a></span><span style="color:#000000"><span
22632275
class="ectt-1200">$</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
22642276
class="ectt-1200">docker</span></span><span style="color:#000000"><span
22652277
class="ectt-1200">-</span></span><span style="color:#000000"><span
@@ -2271,7 +2283,7 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
22712283

22722284

22732285
</div>
2274-
<!--l. 660--><p class="indent" > You may have noticed that when we defined the todo application service above we did not specify an image.
2286+
<!--l. 661--><p class="indent" > You may have noticed that when we defined the todo application service above we did not specify an image.
22752287
This is because <span
22762288
class="ectt-1200">docker compose </span>was instructed to use our <span
22772289
class="ectt-1200">Dockerfile </span>at build time, so that we do not have to
@@ -2280,10 +2292,10 @@ <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
22802292
</p>
22812293
<h3 class="sectionHead"><span class="titlemark">6 </span> <a
22822294
id="x1-260006"></a>Conclusion</h3>
2283-
<!--l. 682--><p class="noindent" >Over the past couple of weeks we have built a full todo app API that is ready to be deployed to a remote
2295+
<!--l. 683--><p class="noindent" >Over the past couple of weeks we have built a full todo app API that is ready to be deployed to a remote
22842296
production environment. We started with a Flask API returning static responses and now we have a dynamic API
22852297
that is running in a containerised environment with an external database.
2286-
</p><!--l. 685--><p class="indent" > We have cheated with our Docker deployment by using the Flask development server. For a
2298+
</p><!--l. 686--><p class="indent" > We have cheated with our Docker deployment by using the Flask development server. For a
22872299
production environment you will want to use a production webserver such as <span
22882300
class="ectt-1200">gunicorn </span>or <span
22892301
class="ectt-1200">uwsgi</span>.

practicals/week04-instructor.pdf

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)