# mall-docker **Repository Path**: xiaoyun461/mall-docker ## Basic Information - **Project Name**: mall-docker - **Description**: 基于mall项目 完善docker-compose - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-28 - **Last Updated**: 2021-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mall-docker #### 介绍 基于mall项目 完善docker-compose,一键构建 至少需要8G内存 #### Git地址 后端地址 `https://gitee.com/macrozheng/mall` 前端地址 `https://gitee.com/macrozheng/mall-admin-web` #### 软件架构 `docker-compose` #### 安装教程 1. 修改当前项目 `vue/config/dev.env.js` `192.168.2.208` 改为你的外网Ip 2. 运行 `docker-compoese up -d` #### 使用说明 1.`http://192.168.2.208:8090/` 为 admin-web 控制台 | 账号 | 密码 | |----|----------| | admin | macro123 | 2.`http://192.168.2.208:5601/` 为 kibana 控制台 3.`http://192.168.2.208:9001/` 为 minio 控制台 4.api接口文档 swagger-ui `http://192.168.2.208:8080/swagger-ui.html` mall后台系统 `http://192.168.2.208:8081/swagger-ui.html` mall搜索系统 `http://192.168.2.208:8085/swagger-ui.html` mall前台系统 ## 注意 假如你要开启es文件挂载,修改 `docker-compose.yml`第67,68行时,如下 ```shell script # volumes: # - ./elk/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载 ``` 打开当前注释后,启动es会报错,因为 es第一次启动时 会在 `/usr/share/elasticsearch/data`文件夹下 创建 `node`文件夹, 但是因为挂载后 没有权限创建文件夹,所以es报错. #### 解决方法(2选1): 1.第一种方法 先让他不挂载,让es运行一次,然后 到当前项目的目录下执行 `docker cp es:/usr/share/elasticsearch/data ./elk/elasticsearch` `docker-compose down` 接着打开 第67,68行注释再运行 `docker-compose up -d` 2.第二种方法 给当前项目 加权 777 `chmod -R 777 elk/elasticsearch/data` ### 关于mall原项目 问题 在用 `application-prod.yml` 到linux环境下 运行时,mysql会报错 连接不上 ```yaml spring: datasource: url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: reader password: 123456 ``` 原因在于 没有添加 `useSSL=false` #### useSSL=false和true的区别: SSL(Secure Sockets Layer 安全套接字协议),在mysql进行连接的时候,如果mysql的版本是5.7之后的版本必须要加上useSSL=false,mysql5.7以及之前的版本则不用进行添加useSSL=false,会默认为false,一般情况下都是使用useSSL=false,尤其是在将项目部署到linux上时,一定要使用useSSL=false!!!,useSSL=true是进行安全验证,一般通过证书或者令牌什么的,useSSL=false就是通过账号密码进行连接,通常使用useSSL=false!!! 版权声明:本文为CSDN博主「笋干zzZ~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/sungancd/article/details/119183605 所以我在构建Dockerfile时 都额外的修改了配置文件,追加`useSSL=false` 例如 `Dockerfile` 第35,67,81行: ```dockerfile ENV JAVA_OPT --spring.profiles.active=prod --spring.datasource.url=jdbc:mysql://db:3306/mall?useSSL=false&useUnicode=true&characterEncoding=utf-8&useLegacyDatetimeCode=false&serverTimezone=${TZ} ```