前面讲到Passer -> MQ <- Center 通了
今天就来把他们给包一包容器化和收工结尾
Docer file是用来描述起一个Container要包含哪些内容物,通常会先起一个Image然後开始对它加工,有时候我们会用到多个Image,但最终Container只会保留最後的那一个Image,以及定义Container启动的通关密语(Entrypoint)。
写Docer file之前我们得先厘清一个Web service container被Host起来需要哪些条件:
为此我们要做几件事请参照下图并对照左侧行数:
Line 1 : 我们载了SDK Image。(这边AS Build很重要,Line 17会用到,这技巧称作multistage。)
Line 2 : cd并建立一个app资料夹作为服务进入点
Line 5 : 我们我们把专案描述依赖套件的文档放入app资料夹
Line 6 : 执行resotre下载他的依赖套件并且编译
一、二点完成
Line 9 : 我们把其他专案的相关档案也都搬运到app底下
Line 10 : 我们把专案Publish出一个Release版本,放到out资料夹,这out资料夹会在app底下。
第三点完成
Line 13 : 下载dotnet core runtime Image为了能把服务host起来。
第四点完成
Line 15 : cd并建立一个app资料夹
Line 17 : 把前面build的publish成果(Line 10 存在out资料夹),搬运到这边的app资料夹底下。
第三点真的完成了
Line 19 : 每个Container要被驱动的方法唯有透过Entrypoint,我们在这里设定指令,代表当它被包成Container时会执行"dotnet passer.dll"执行这项服务。
第五点完成
Center同理唷不解释。
这时一定有人问说啊RabbitMQ勒?这我们交由Compose来实作。
Compose 是当你专案多,彼此又有相依,一个个专案下指令去Host是很累也很耗费成本的事。Compose就是再写一份脚本来帮你搞定这些事。
这边我们写了一份docker-compose.yml
Line 1 : 注名用的是哪一个版本的compose技术
Line 3 : 告诉Docker接下来的内容物都是要起的Service给老子听清楚(误
Line 5 : 起一个center 注意不得有空格与大写
Line 6 : 他会always auto restart.
Line 7 : 他会等rabbitmq service起来之後才会起来
Line 11 ~ Line 16 一样逻辑
Line 18 : 起一个rabbitmq
Line 19 : 我们直接上docker hub拉image
Line 20 : hostname要跟你专案的hostname对到,前面介绍都用Localhost可以乔一下看想怎样。
Line 22 : 我忘记这啥了
Line 23 : 开一堆Port。
记得先停掉掉你本地的rabbitmq不然port号会抢到。
到Compose file那层执行:
docker-compose up --build
Ps. 我忘记截rabbitmq後台此时的图了,反正会跟前面的一样能work,自己去看看罗。
>>: 许多有趣的变数!如何使用 Postman 尝试 Nutanix 的 API
NNI搬到Colab上,环境类似本机。虽然,NNI很容易搬到Colab平台上,但由於Colab并不公...
关於讯息伫列怎麽去储存呢?大致分成下列两种: 1.系统池(system pool):如果能确定讯息伫...
以下是使用 Excel 2016 示范 环境设定 第一步:开启开发人员 开启Excel後上方工具列呈...
创建你的钱包 一样,对比前面的match档,现在新增一个bank的json档案 回到bot档,现在我...
阵列的基本介绍 简单来说是存放一组资料集 阵列 会使用 [ ] 前後包住资料集 下面的范例意思是 d...