• 国产化 飞腾芯片 银河麒麟 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为启动脚本,客户点击此脚本选择在终端中执行,可以完成安装部署。脚本介绍如下图:

      

    本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/14345885.html

    电话微信:13514280351
  • 相关阅读:
    如何自定义一个通信协议
    c++ 如何编写接口类(interface)
    QT国际化(中英转换)
    QT中文乱码与国际化支持
    frp官方中文文档
    K3 LEDE固件更改FRP客户端版本
    Linux下的tar压缩解压缩命令详解
    QT入门系列(3):控制台输出QString
    Delphi、Lazarus保留字、关键字详解
    使用TortoiseSVN的客户端钩子脚本触发Jenkins构建
  • 原文地址:https://www.cnblogs.com/zwbsoft/p/14345885.html
Copyright © 2020-2023  润新知