伸缩自如的Flask [day 20] Docker compose

假设今天有的flask服务要附上能一起使用的DB,可以考虑使用Docker compose这个服务。
只需要一个指令docker-compose up,就可以把整套系统起起来。

可以先看一下结构及app.py:

https://ithelp.ithome.com.tw/upload/images/20210602/20122678fIJQl2yvBd.png

可以发现在主程序为app.py,而在旁边放置了docker-compose.yml、Dockerfile、requirements.txt,
而app.py的功能呢,是如果有人访问根路由,就在DB写入一笔hello的资料。

可以特别注意到,因为之後的docker-compose.yml会将container link在一起(container 运行在同一个Network),所以DBconnection设定为"mongodb://host.docker.internal:27017/",而不是localhost。

假设不想使用link的方法,也可以使用:

docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <container id or name>

来查询container与预设Network "Bridge" 所连结的IP。

https://ithelp.ithome.com.tw/upload/images/20210602/20122678nM7ZWoDFnU.png

https://ithelp.ithome.com.tw/upload/images/20210602/20122678uDbyGyUFr7.png

而Dockerfile、requirements.txt与前面的长得差不多。

再来是docker-compose.yml:

https://ithelp.ithome.com.tw/upload/images/20210602/20122678Rac36FQEJ2.png

可以发现flask的服务是现场build出image来运行成container,而mongodb是使用已经拉好的image,而且我们也将flask服务连结到与DB同一个Network。

在有docker-compose.yml的路径上打上指令:

docker-compose up

接着可以看看运行结果。
https://ithelp.ithome.com.tw/upload/images/20210602/20122678sTxG4ySDxY.png

https://ithelp.ithome.com.tw/upload/images/20210602/201226784SN2CQSDz3.png


<<:  Day 7 (CSS)

>>:  Windows Server 2019 英文语系更新至繁中

JS中的排序法_下

今天Icebear要实作排序演算法简介中的另外3个演算法 积排序(HeapSort) 运作方式 : ...

[Day11] 策略最佳化模组改造(1)

先讲一下接下来几天的目标,目前在最佳化的时候会需要针对每一支不同的策略写一次最佳化函数,这在未来使用...

AutoCAD ActiveX #5-1 Selection Filters (0)

Command:filter filtertype filterdata filtertype fi...

Day 01:前言,这批很纯,快进来吧!

这三小系列 本来我报名了软件开发组,但是我某天忘记发文了~ 所以再开了新系列拿个参加奖 Who Am...

[Day 21] 闭包 (Closure)是什麽?

前言 闭包的观念,其实就和前几天谈到的作用域、变数宣告和作用域的观念有关。只要有清楚知道其中差异,在...