国产化 飞腾芯片 银河麒麟 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:部署所需文件的结构介绍,如下图:

 

 

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

 

3.2:core文件夹详细介绍

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

 

 

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

 

 

3.3:db文件夹介绍

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

 

 

3.4:mysql8文件夹介绍

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

 

3.5:vue文件夹介绍

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

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

 

 

dockerfile文件如下图:

 

 

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为启动脚本,客户点击此脚本选择在终端中执行,可以完成安装部署。脚本介绍如下图:

 

 

  

 

posted @   zwbsoft  阅读(2069)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示