导航

Docker 制作引擎镜像

Posted on 2021-04-01 15:15  杨彬Allen  阅读(124)  评论(0编辑  收藏  举报

目录

前言

引擎是我们公司独有的产品,别人也用不到,可以跳过这一章

介绍

引擎分为两部分:

           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

运行结果:可以看到两个程序都正常启动了。