国产化 飞腾芯片 银河麒麟 docker部署netcore

1、背景介绍

此文档是基于arm64架构服务器编写的,写此文档时使用的是银河麒麟系统。银河麒麟系统自带docker,所有我们不需要再安装docker,而且银河麒麟系统中的docker已经设置了开机自启,我们不需要设置开机自启。如果之后安装单机版的电脑没有docker,则需要我们在脚本中提供安装docker的命令,并设置docker开机自启。

 

2、单机版docker部署方案简介

2.1:此方案根据mysql-server的arm64的镜像和数据库初始化sql来创建自己的mysql镜像,根据aspnetcore的arm64的镜像和后端项目代码创建自己的镜像,根据nginx的arm64镜像和前端项目代码创建自己的前端项目镜像。

2.2:此方案使用shell脚本一键部署。在shell脚本中实现镜像的加载与容器的运行。

2.3:由于此方案将数据库也安装在docker中,所以需要挂载数据到宿主机,防止数据丢失。

 

3、docker部署详细教程以及遇到的坑

3.1:部署所需文件的结构介绍,如下图:

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

每个文件或文件夹对应的左右请看箭头后说明。注意:文件夹mysql8,rms_mysql.jar,rms_net.jar,rms_vue.jar,start.sh这五个是我们部署时所需要的,其余的只是在创建镜像时需要使用,部署不需要。

 

3.2:core文件夹详细介绍

此文件夹下包含一个叫api的文件夹,此文件夹又.netcore开发人员提供,为.netcore项目打好的包。api文件夹下包含一个appsetting.json的配置文件,修改此文件中的mysql数据库连接信息。如下图

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

此文件夹下还包含一个叫dockerfile的文件,这个文件是我们用来构建自己后端项目。注意此文件无后缀,可以使用记事本等编辑器打开。dockerfile内容如下图,每一行命令及释义请看图片

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

3.3:db文件夹介绍

此文件夹下包含数据库初始化脚本(core.sql)和dockerfile文件。dockerfile文件命令及释义如下图:

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

3.4:mysql8文件夹介绍

此文件夹为docker内数据库容器在宿主机的挂载地址。如果不设置挂载,docker中数据库容器被删除后数据会丢失。这个文件夹是我先启动数据库容器,然后使用 docker exec -it db(容器名) bash此命令进入容器内部,然后将/var/lib/mysql文件夹拷贝到mysql8中。在数据库容器启动时会指定挂载文件地址,保证数据不丢失。

 

3.5:vue文件夹介绍

此文件夹包含dist文件夹,此文件夹为前端人员提供的前端打包好的项目。包含dockerfile文件和nginx.conf文件。

ngixn.conf文件为nginx的配置文件,如下图:

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

dockerfile文件如下图:

国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

3.6 mysql.jar netcore.jar nginx.jar 这三个jar包为基础镜像,部署不需要。

3.7 rms_mysql.jar rms_net.jar rms_vue.jar 为我们自己创建的镜像,时根据core,db,vue这三个文件夹下的dockfile文件和其他文件来创建的。部署时需要这三个镜像。

3.8 start.sh为启动脚本,客户点击此脚本选择在终端中执行,可以完成安装部署。脚本介绍如下图:国产化 飞腾芯片 银河麒麟 docker部署netcore

 

 

  

 

上一篇:Asp.netCore 3.1控制器属性注入and异步事务Aop by AutoFac


下一篇:通过 KVM+virt-manager配置双屏虚拟机(两套键盘。鼠标)