Appearance
发发记账独立部署版docker安装方法
docker镜像地址
docker安装服务端文件方法一(不考虑数据持久化,不推荐)
根据镜像配置启动容器,以下为示例命令(按需修改参数):
code
docker run -d \
--name 88jizhang \
-p 5188:5188 \ # 映射容器5188端口到宿主机5188端口
-p 5199:5199 \ # 映射容器5199端口到宿主机5199端口
-e TZ=Asia/Shanghai \ # 添加时区配置
--restart always \ # 添加自动重启策略
crpi-btxs8xhps2iaw65e.cn-hangzhou.personal.cr.aliyuncs.com/88jizhang/88jizhang:v1.0.13参数说明:
-d:后台运行容器。
--name:指定容器名称。
-p:端口映射(格式 宿主机端口:容器端口),
-v:数据持久化(宿主机目录:容器目录),这里直接容器运行,不配置。
-e:设置时区为北京上海时间
--restart always 自动重启策略
镜像地址 crpi-btxs8xhps2iaw65e.cn-hangzhou.personal.cr.aliyuncs.com/88jizhang/88jizhang:v1.0.13
启动成功后,根据运行日志显示的IP地址(如10.100.14.44),浏览器输入 http://10.100.14.44:5188 即可访问系统.
启动成功后,如果有ssl证书,浏览器输入 https://10.100.14.44:5199 即可访问系统.
运行成功后,查看docker容器里面的有以下这些文件夹或文件
code
.
├─ node_modules/ # 📁 项目运行必须包含的依赖文件
├─ zhangbenpicture/ # 📁 账单图片文件夹及web界面的一些页面
├─ https/ # 📁 ssl证书存放文件夹
├─ data/ # 📁 数据文件目录
│ ├─ jizhang.db # 🏠 数据库文件
│ └─ setting.json # 🔧 配置文件(用户注册密钥等可自行修改)
│─ appstart # 🚀 快速启动文件
└─ .... # 其他项目文件(如安装说明等文件)docker安装服务端文件方法二(考虑数据持久化,推荐安装方式)
上面部署方法,全部数据(数据库、账单图片文件夹等)都在放在容器中运行,一旦删除容器,数据会丢失。那么就必须考虑数据持久化。即将重要的数据映射在宿主机上,其他数据继续保存在容器里面。这样每次容器删除或者容器升级,均不会对记账数据有影响。
我们只需将容器里面的账单图片文件夹、ssl证书文件、数据库、配置文件放在宿主机里面。其余文件继续保留在容器中。
以ubuntu系统的宿主主机为例,新建一个文件夹88jizhang,存放路径如/home/zhangsan/docker/88jizhang
我们已经给你建好了下面内容的文件夹,点击此链接下载 ,然后上传到宿主机目录下,看到包括文件及文件夹如下:
code
.88jizhang
├─ zhangdanimages/ # 📁 账单相册在此文件夹里面(是个空文件夹后期存放账单图片)
├─ https/ # 📁 ssl证书存放文件夹(里面有cert.pem和key.pem两个文件)
├─ data/ # 📁 数据文件目录
│ ├─ jizhang.db # 🏠 数据库文件
│ └─ setting.json # 🔧 配置文件(用户注册密钥等可自行修改)
└─ .... # 用户自行添加的其他文件docker run命令如下并启动
code
docker run -d \
--name 88jizhang \ # 容器命名为88jizhang
-p 5188:5188 \ # 宿主机5188端口(冒号左边)映射容器5188端口(冒号右边)
-p 5199:5199 \ # 宿主机5199端口(冒号左边)映射容器5199端口(冒号右边)
-v /home/zhangsan/docker/88jizhang/data:/app/data \ # 映射数据文件
-v /home/zhangsan/docker/88jizhang/https:/app/https \ # 映射SSL证书目录
-v /home/zhangsan/docker/88jizhang/zhangdanimages :/app/zhangbenpicture/zhangdan-picture \ # 映射账单相册存储目录
-e TZ=Asia/Shanghai \ # 添加时区配置
--restart always \ # 添加自动重启策略
crpi-btxs8xhps2iaw65e.cn-hangzhou.personal.cr.aliyuncs.com/88jizhang/88jizhang:v1.0.13ARM 环境请更换docker镜像地址为 crpi-btxs8xhps2iaw65e.cn-hangzhou.personal.cr.aliyuncs.com/88jizhang/arm_88jizhang:v1.0.13
核心功能说明
1、映射端口:
-p 5188:5188 \ # 宿主机5188端口(冒号左边)映射容器5188端口(冒号右边)
-p 5199:5199 \ # 宿主机5199端口(冒号左边)映射容器5199端口(冒号右边)
容器内端口:5188为http端口,5199为https端口(需配合SSL证书使用),该端口不可修改
宿主机端口:5188为http端口,5199为https端口(需配合SSL证书使用),用于外部访问,可以根据情况自行修改
2、文件或文件夹映射
确保记账相关数据持久化,必须对记账相关的重要文件和文件夹进行映射,将数据存放在宿主机上。即使容器删除,该数据文件也不会丢失。
2.1 数据库文件映射(最重要)
作用:data文件夹里面有记账数据库jizhang.db和配置文件setting.json,用于存储所有记账流水信息,这个文件夹不能丢,否则记账数据就没了。
映射代码 -v /home/zhangsan/docker/88jizhang/tata:/app/data \
代码解析:将容器内/app/data目录下的文件绑定到宿主机路径 /home/zhangsan/docker/88jizhang/data
注意:宿主机文件夹 /home/zhangsan/docker/88jizhang/data 必须存在,且文件夹里面有jizhang.db和setting.json两个文件,否则容器会报错。
2.2 SSL证书目录映射 (非必须步骤)
作用:存放 SSL 证书(如 cert.pem 和 key.pem),用于启用 HTTPS 服务。
映射代码 -v /home/zhangsan/docker/88jizhang/https:/app/https \
代码解析:将容器内/app/https文件夹目录绑定到宿主机 /home/zhangsan/docker/88jizhang/https文件夹。
注意:宿主机文件夹 /home/zhangsan/docker/88jizhang/https必须存在,并放置cert.pem和key.pem两个证书文件,否则容器会报错。
当然如果你不使用ssl证书,该行映射代码删除即可,宿主机也不用设置https文件夹并存放cert.pem和key.pem文件。
2.3 账单图片目录映射 (必须步骤)
作用:持久化存储用户上传的账单图片。
映射代码 -v /home/zhangsan/docker/88jizhang/zhangdanimages :/app/zhangbenpicture/zhangdan-picture \
代码解析:将容器内/app/zhangbenpicture/zhangdan-picture文件夹目录绑定到宿主机 /home/zhangsan/docker/88jizhang/zhangdanimages文件夹
注意:宿主机文件夹 /home/zhangsan/docker/88jizhang/zhangdan-picture必须存在,新建一个空文件夹即可,否则报错。
当然如果你不想使用流水上传图片功能,该行映射代码删除即可。宿主机也不用新建zhangdanimages文件夹。
启动成功后,根据运行日志显示的IP地址(如10.100.14.44),浏览器输入 http://10.100.14.44:5188 即可访问系统.
启动成功后,如果有ssl证书,浏览器输入 https://10.100.14.44:5199 即可访问系统.
部署完毕后,web端、app端和H5端详细访问方式、端口映射、域名绑定等,点击后面链接 web、app与H5访问 查看
温馨提示
如果出现类似报错,比如docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "./setting.json": no such file or directory: unknown则说明找不到宿主机映射的文件或者文件夹。
请检查宿主机的映射文件是否存在,如果不存在请新建。
部署过程中有任何疑问请进入QQ群558762513交流。
