目录
前言
引擎是我们公司独有的产品,别人也用不到,可以跳过这一章
介绍
引擎分为两部分:
1、eventbus事件总线,用来订阅和消费流程事件等(以非网页模式启动)
2、webapi,将引擎的部分接口暴露给其他应用调用。
将engine和engine.api两个应用打包到一块并制作成一个镜像
制作
1、新建一个文件夹engine,并将engine(事件总线)、engine.api两个发布包拷贝到文件夹下。如图:
2、新建一个shell文件:starter.sh。由于dotnet命令启动全路径的网站时,无法调用到appsetting.json等配置文件,如dotnet app/medusa.engine.api/src/Medusa.Engine.RestEntrance.dll这种会提示出错。所以这边我们采用在.sh文件里写多个脚本。
需要注意的时候,/app这个目录是我们在制作镜像指定的容器目录。所以/app是可以改的,保持和Dockerfile里的WORKDIR一致即可。
#!/bin/bash cd /app/medusa.engine.api/src/ dotnet Medusa.Engine.RestEntrance.dll cd /app/medusa.engine/src/ dotnet Medusa.Engine.EventEntrance.dll
3、新建Dockerfile文件
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-bionic AS base WORKDIR /app COPY . /app EXPOSE 20060 #Add permission RUN ["chmod", "+x", "/app/starter.sh"] ENTRYPOINT ["/app/starter.sh"]
4、运行镜像制作脚本
docker build -t imageengine:v1 .
运行结果
5、至此,一个引擎镜像就制作完毕了,接下来我们运行这个镜像
docker run --name dockerenginev1 -p 20060:80 -d imageengine:v1
运行结果:可以看到两个程序都正常启动了。