由于公司项目扩展,需要将软件进行国产适配,这是一个支持国产的好机会,博主当然要首当其冲的冲在了最前沿,然后在部署环境的过程中出了一些问题,但是不能慌。
项目介绍:
语言:Java
框架:springCloud
数据库:Mysql 5.7
jdk:1.8
中间件:rabbitMq
非关系型数据库:Redis
项目启动采用jar包打包成docker镜像的方式启动,因此本次服务器安装需要安装JDK,rabbitmq、redis、mysql以及docker。jdk、mysql、redis以及rabbitmq使用docker镜像安装。
咱们还是要凭借着工作经验去解决问题。还好最后功夫不负有心人。成功搭建!下面先放搭建成功之后的图片(由于隐私,LOGO就抹掉了哈)
CPU: Hygon C86 5280 16-core Processor 内存:16G硬盘:500G
从图片里可以看到使用的是国产海光CPU,Linux系统使用的是国产麒麟。
查看服务器的内存 16G
查看服务器型号 Huayun S1,服务器是由信创公司提供的
想到搭建nginx,可能大家都会使用yum直接安装部署,一气呵成。直接complete,那多倍儿爽,但是天有不测风云,月有阴晴圆缺。美好的事物总那么的不美好。
第一步:更新yum源
sudo yum update
嗯哼,完美。等了大概10分钟,更新成功!!!真好。真过劲!
然后使用以前安装centos的方法安装nginx
添加源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装Nginx
sudo yum install -y nginx
安装失败,当时没有留截图,忘记报错是什么了,这个如果安装成功会显示complete,而且不需要安装4个依赖(GCC++等等)
好吧,额滴神哦。我也没有继续搜解决方案。此路不通,换条路走,条条大路通罗马,那就采用源码方式安装吧。
源码方式安装请看其他博客
认识nginx和配置nginx
啊哦,安装不成功。大致报错内容就是
出现‘struct crypt_data’没有名为‘current_salt’的成员 cd.current_salt[0]
原因:安装的版本过低,
解决方式:源码下载最新的nginx
success!
使用java怎么能没有docker呢,docker的安装也是本次能够安装成功的重要功臣之一。老样子,采用以前的方式安装docker,估计应该不大行。
第一步:
curl -fsSL https://get.docker.com -o get-docker.sh
第二步:
sudo sh get-docker.sh
第三步:
sudo systemctl start docker
第四步:
docker ps
果然后面报错
Unsupported distribution 'alinux’
换一种方式安装(成功)
第一步 yum update 更新到最新
yum update
第二步: 安装docker
yum install -y docker-engine
这段过程时间比较长,我们可以去操作干一些其他的事情,比如我这段时间又打开了一个新的会话安装nginx。
第三步: 启动docker
systemctl start docker.service
第四步: 查看docker 版本,验证是否成功
docker version
第五步:查看docker容器(可选)
docker ps
第六步: 查看docker 镜像(可选)
docker images
安装Mysql mysql安装这里面花费了很长的时间,尝试了三种方式才安装成功。
第一种:yum 安装 (失败)
第二种:源码安装(失败)
第三种:docker镜像安装(成功)
所以说后面的成功得亏是docker大酱(将)出马,要不然还是凉了。
第一种 yum安装:
以前的centos版本服务器如果不用到docker,基本上都是通过第一种方式安装的
1、yum源安装mysql
yum -y install mysql-server
2、开机启动
chkconfig mysqld on
3、启动mysql
service mysqld start
4、连接mysql,连接成功后,输入框前面会显示 mysql>
mysql -u root
5、在mysql中查询用户和密码
select user,host,password from mysql.user;
6、因为安装成功后,默认没有密码,需要设置密码。
set password for root@localhost=password('xiaofeng');
7、保存配置
flush privileges;
8、退出
exit
—最后以失败告终,其中第一步就失败了,后面的步骤主要提供给大家看一下–
第二种 源码安装
安装方式参考这个博客(失败)
缺少依赖,小友们可以yum这个包的依赖安装,博主当时也只是尝试一下。
第三种 docker安装(简单、有效、快捷)
如果道友们服务器上有docker的情况下,强烈建议大家使用docker安装mysql。
1、查询mysql
docker search mysql
2、下载mysql5.7镜像
docker pull mysql:5.7
3、创建容器并启动
密码:123456
-name 容器名称为mysql5.7
p端口映射:3306->3306
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d 后台运行容器,并返回容器ID;
-e 传递环境变量
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
4、查看启动的容器
docker ps
rabbitMQ和redis以及jdk同上就不复述了.
jar包部署
jar包上传到服务器中后需要先下拉adoptopenjdk/openjdk8-openj9的镜像
jar包部署代码
cd /home/csg/csg-centerdocker build -t csg-center .docker stop csg-centerdocker rm csg-centerdocker run -d -p 8761:8761 --name=csg-center csg-center --log-opt max-size=10m --log-opt max-file=3docker logs csg-centerdocker build -t csg-scada-manage .docker-compose up -d cd /home/csg/csg-configdocker build -t csg-config .docker stop csg-configdocker rm csg-configdocker run -d -p 8750:8750 --name=csg-config csg-config --log-opt max-size=10m --log-opt max-file=3docker logs csg-configcd /home/csg/csg-authdocker build -t csg-auth .docker stop csg-authdocker rm csg-authdocker run -d -p 9777:9777 --name=csg-auth csg-auth --log-opt max-size=10m --log-opt max-file=3docker logs csg-authcd /home/csg/csg-admindocker build -t csg-admin .docker stop csg-admindocker rm csg-admindocker run -d -p 8762:8762 --name=csg-admin csg-admin --log-opt max-size=10m --log-opt max-file=3docker logs csg-admincd /home/csg/csg-gatedocker build -t csg-gate .docker stop csg-gatedocker rm csg-gatedocker run -d -p 8765:8765 --name=csg-gate csg-gatedocker logs csg-gatecd /home/csg/csg-scada-managedocker build -t csg-scada-manage .docker stop csg-scada-managedocker rm csg-scada-managedocker run -d -p 8766:8766 --name=csg-scada-manage csg-scada-manage -v /etc/localtime:/etc/localtime:ro --log-opt max-size=10m --log-opt max-file=3docker logs csg-scada-managecd /home/csg/csg-scada-taskdocker build -t csg-scada-task .docker stop csg-scada-taskdocker rm csg-scada-taskdocker run -d -p 8763:8763 --name=csg-scada-task csg-scada-task -v /etc/localtime:/etc/localtime:ro --log-opt max-size=10m --log-opt max-file=3docker logs csg-scada-taskservice docker startdocker stop csg-centerdocker stop csg-scada-taskdocker stop csg-scada-managedocker stop csg-admindocker stop csg-gatedocker stop csg-authdocker stop csg-configdocker start csg-centerdocker start csg-configdocker start csg-authdocker start csg-admindocker start csg-gatedocker start csg-scada-managedocker start csg-scada-task
csg-admin的 DockerFile文件
FROM adoptopenjdk/openjdk8-openj9VOLUME /tmpADD csg-admin.jar app.jarADD wait-for-it.sh /wait-for-it.shRUN sh -c 'touch /app.jar' && echo 'Asia/Shanghai' >/etc/timezoneENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]