# 人人框架微服务版开发环境和安装部署

### renren微服务框架需要jdk 17 ，nodejs 18+ 请注意版本选择


#### 安装mysql数据库

先安mysql装数据库，并创建两个database，一个用于nacos,一个用于项目，初始化nacos数据结构和数据。


nacos-server-2.2.3 数据库初始化脚本:[nacos-2.2.3-mysql-schema.sql](https://iovhm.com/book/attachments/5)



#### 安装部署nacos

官方网址：https://nacos.io/zh-cn/docs/what-is-nacos.html  
github地址：https://github.com/alibaba/nacos  
github数据库初始化脚本：https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql

```
# 镜像
# 根据需要，开放8848和9848端口

nacos/nacos-server:v2.2.3


# 设置环境变量

# 系统（集群）启动方式 ，cluster：集群，standalone：单机
MODE: standalone

# 数据库名称                       
MYSQL_SERVICE_DB_NAME = renren_cloud_nacos

# 数据地址
MYSQL_SERVICE_HOST = 192.168.0.10

# 数据库密码
MYSQL_SERVICE_PASSWORD = <your password>

# 数据库端口
MYSQL_SERVICE_PORT: 33306

# 数据用用户名
MYSQL_SERVICE_USER: root

# 主机模式,ip:ip地址，host:主机名
PREFER_HOST_MODE: ip

# 数据库类型
SPRING_DATASOURCE_PLATFORM: mysql

```



#### 安装部署redis

```
version: "3"
services:
  redis:
    image: redis:6.2.6
    restart: always # 自动重启
    ports:
      - 56301:6379
    command: redis-server --appendonly yes --requirepass <your password>

```


#### 编写Dockerfile

- java项目，包括:**renren-admin-server**,**renren-gateway**
```
FROM openjdk:17
EXPOSE 8080

# VOLUME /tmp
ADD target/renren-admin-server.jar /app.jar
CMD ["java","-jar","/app.jar"]

```

- VUE前端项目，包括web-admin

- nginx.conf
```
server {
    listen       80;
    #listen 443 ssl;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    #ssl_certificate     /home/ssl/server.crt;
    #ssl_certificate_key /home/ssl/server.key;

    root /usr/share/nginx/html;
    index index.html;

    location / {
        # 不缓存首页，解决VUE单页面发版后不生效
        add_header Cache-Control "no-cache no-store must-revalidate proxy-revalidate,max-age=0";
        add_header Last-Modified $date_gmt;
        # 这个有顺序，需要加在后面
        etag off;
    }
}
```


- Dockerfile
````
FROM nginx:latest
EXPOSE 80

COPY ./dist /usr/share/nginx/html
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf

````

- 解决浏览器版本缓存不刷新



  [VUE前端缓存不刷新问题](https://iovhm.com/book/books/cee63/page/vue)


- 编写push.sh文件

```
#!/bin/bash

# 登录
docker login -u <your name> -p <your password> swr.cn-south-1.myhuaweicloud.com

# 打包
docker build -t swr.cn-south-1.myhuaweicloud.com/vp-park/park-baseline/<your image name>:v1.0 ./

# 推送
docker push swr.cn-south-1.myhuaweicloud.com/vp-park/park-baseline//<your image name>:v1.0

 ```


#### 编写统一配置文件

在k8s新建ConfigMap，然后再java服务中引用配置：增加环境变量，选ConfigMap,选择需要的configMap名称

```
# 服务地址
nacos_host = nacos-server

# 名字空间
nacos_namespace = public

# 端口
nacos_port = 8848
```

#### 进一操作请参考rancher使用手册

[rancher2.7使用手册](https://iovhm.com/book/books/k8s/page/rancher28)


#### 上传nacos配置文件

打开nacos管理界⾯(http://localhost:8848/nacos) ，初始⽤户名nacos，密码nacos，登录之后，如下所示：

[![](https://iovhm.com/book/uploads/images/gallery/2023-10/scaled-1680-/oeHqZuMdAUYGbg9P-image-1697778808535.png)](https://iovhm.com/book/uploads/images/gallery/2023-10/oeHqZuMdAUYGbg9P-image-1697778808535.png)


导⼊nacos配置⽂件，配置⽂件在项⽬⾥，⽂件名为：【~/doc/nacos/nacos_config.zip】，如下所示：

[![](https://iovhm.com/book/uploads/images/gallery/2023-10/scaled-1680-/inO6bF4mR7Ql1mgu-image-1697778842824.png)](https://iovhm.com/book/uploads/images/gallery/2023-10/inO6bF4mR7Ql1mgu-image-1697778842824.png)

在nacos⾥，还需要修改datasource.yaml，如：redis、MySQL信息，如下所示：

[![](https://iovhm.com/book/uploads/images/gallery/2023-10/scaled-1680-/R82QSiYcob2YmXNN-image-1697778865523.png)](https://iovhm.com/book/uploads/images/gallery/2023-10/R82QSiYcob2YmXNN-image-1697778865523.png)

#### 安装部署代码生成器

安装部署代码生成器:[人人框架代码生成器安装部署](https://iovhm.com/book/books/bbcbf/page/fe73f)