找回密码
 立即注册

QQ登录

只需一步,快速开始

AvoCaDolol 活字格认证 Wyn认证
社区贡献组   /  发表于:2023-3-2 10:51  /   查看:2065  /  回复:6
咱们这些给人做项目的,都有这样的一种场景:
1、不同的客户需求不一样,环境不一样,有的是微信小程序、有的是PHP、有的是C#、有的是活字格
2、随着客户服务的越来越多,需要验证的环境越来越复杂
3、有的项目完成后,仍需要持续的维护、迭代、升级
4、自有一台云端服务器,但随着服务客户越来越多,环境的准备、软件的版本不同带来的成本越来越高

我呢,之前有一台2核4G的云服务器,随着服务客户的数量增多,配置服务器就成了一个非常头疼的事情。
一个客户是PHP5.6+TP3.0,之后的客户就变成了PHP7.0 + TP6.0.
再后来就是Java + Nginx,活字格7.102。7.0版本做完到现在还在维护,但是新项目来了,又换成了8.104
中间还有Wyn,还有C#的Asp.net服务。
同一个linux服务器配置的东西越来越多,常常都是卸载+全新配置,换项目再来一遍。烦不胜烦。

以前用的宝塔面板,我觉得已经是一大进步,但是随着环境频繁变化,开始各种出错,权限啦、配置文件啦、卸载残留啦。
就一个数据库就够我喝一壶。

一直想像虚拟机一样,把这些客户的环境统统隔离开,随用随开,还能随身携带。但开发环境和生产环境还是需要重新配一遍。
曾经考虑过Esxi或者VMware虚拟化,但是穷啊,我要是能像我的某客户一样,自己攒一台100核2T内存的服务器,我会开一大堆的虚拟机。
后来新项目用到了Docker,我突然觉得这是个比较有意思的工具,就想着能不能把活字格服务器装进Docker,本着踩坑的目的,尝试了8.104和8.105,都成功了。
现在把教程放上来,就不放镜像了,照着我的步骤,一次搞定,没必要再打包一个镜像。

教程如下。
我的环境:Linux服务器,4核 8G 100G硬盘,实体机安装的是CentOS 7.9,使用了腾讯的宝塔联名版CentOS7.9,安装完之后内置一个宝塔如下
image.png849512023.png
内置的宝塔自带Docker管理,就在左边菜单里
这样就很方便了,我下面讲的都是默认大家懂Docker,不懂得我推荐去b站看看狂神的课,讲得很好,还免费。
1、首先,需要一个基础镜像:CentOS7.9,8.0以上不建议装活字格,因为.NetCore6.0以上不再支持CentOS8.0以上版本了。
大家可以通过官方镜像拉取CentOS7.9,这个镜像是一个非常非常非常基础的镜像,里面很多命令都没有,比如连sudo都没得。
但是活字格服务器安装的时候,会使用很多常用命令:wget、which、service之类的,具体缺什么,大家看下linux下的installForguncy_cn.sh文件就知道它用到什么了。
2、添加缺少的命令
将CentOS7.9镜像运行起来,然后进去,开始给这个系统添加各种命令即可,命令列表如下:

缺少wget命令:
yum install wget -y

缺少service命令:
yum install initscripts -y

缺少which命令:
yum install which -y

缺少sudo命令:
yum -y install sudo

缺少systemctl命令:
curl https://raw.githubusercontent.co ... docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

缺少firewall命令:
yum install firewalld -y


3、执行安装活字格服务端即可

其实活字格官方的命令是好几个命令拼在一起的,有需要的话,可以自己下载,然后自行安装就行了。
rm -f huozige-installer-linux.tar && wget https://downloads.grapecity.com. ... installer-linux.tar && tar -xvf huozige-installer-linux.tar && chmod +x installForguncy_cn.sh && ./installForguncy_cn.sh
之后等待安装完毕,一个活字格服务器的Docker就创建完成了。友情提示,最后你会发现有一行报错,没关系,不理他就好。

你可以将这个docker打包成镜像,方便给客户部署时使用。
其他的玩法有很多,比如再打包一个8.104的,或者7.102的都是可以的。
高级点的,就是将opt/share下的ForguncyServer 和ForguncyWebSite挂载到实体机,这样,无论镜像出任何问题,你发布的站点、服务器配置都不会丢失,相当于备份。
其他的高级玩法大家自行开发。
由于发布端口22345是固定的,本地设计器无法选择发布端口,所以Docker端口映射也就没有什么意义,就是麻烦在每次发布的时候,将需要发布的那个Docker启动起来,测试,运行,完成后关闭,切换另一个Docker。

目前我的做法是,Mysql会有4个版本跑在Docker里,用于服务4个不同客户,活字格有3个版本,每次用哪个启动哪个。
PHP两套环境,Java一套环境,微信小程序一套环境,抖音小程序一套环境。
光Nginx都有3个。。。。。
起码,我不用纠结配置服务器了,每次切换只需要启动不同的Docker就好。
之后无论是换服务器,还是备份,迁移都很方便。

以上,谢谢。
image.png877609557.png

评分

参与人数 3金币 +666 满意度 +10 收起 理由
lh123 + 5
Nancy.Yin + 666 赞一个!
lovert + 5

查看全部评分

6 个回复

倒序浏览
JC壹玖玖伍活字格认证
高级会员   /  发表于:2023-3-2 17:07:12
沙发
docker咋安装许可
回复 使用道具 举报
teng168
金牌服务用户   /  发表于:2023-3-10 15:24:50
板凳

先学习docker
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2023-3-10 19:19:06
地板
lh123 发表于 2023-3-10 18:25
看完了我人在哪?请注意脚下,一个人躺下,被你整晕了。太难了,我就学个不写代码的。你整个比代码还代码的 ...

哈哈哈哈,还好吧。贵在折腾
回复 使用道具 举报
AoWin7
初级会员   /  发表于:2023-3-25 08:34:29
7#
官方出DOCKer版就好了
回复 使用道具 举报
博睿
初级会员   /  发表于:2023-10-4 21:02:34
8#
楼主这个怎么无法安装 curl https://raw.githubusercontent.co ... docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2024-1-17 15:27:16
9#
博睿 发表于 2023-10-4 21:02
楼主这个怎么无法安装 curl https://raw.githubusercontent.co ... docker/systemctl.py > /usr/bin/system ...

大哥,这论坛吃链接呢,你这链接是被论坛吃掉的简写,你鼠标放到我的链接上,右键拷贝出来。不觉得链接里带点点点很奇怪么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部