# MyProject **Repository Path**: hlyuan/MyProject ## Basic Information - **Project Name**: MyProject - **Description**: 管理系统模板 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-12-24 - **Last Updated**: 2022-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #项目部署说明 ## 后端 ### 数据库配置 项目开发环境数据配置在application-dev.yml 生产环境配置就放在application-prod.yml ### 打包 主要是把后端项目打包成jar ~~~maven clean package // maven命令 ~~~ ### 后端docker环境 Dockerfile ~~~ # 基础镜像使用java FROM java:8 # 作者 MAINTAINER hl.yuan <17386677278@163.com> # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中 RUN mkdir yhl ADD backend-1.0.0-SNAPSHOT.jar /yhl/backend-1.0.0-SNAPSHOT.jar CMD java -jar /yhl/backend-1.0.0-SNAPSHOT.jar ~~~ 打包命令,主要要到项目根目录 ![image-20210308161749650](img/image-20210308161749650.png) ~~~linux docker build -t myproject . // 打包成镜像 docker run -it -p 8089:8089 --name backend -v /root/docker/MyProject/backend-1.0.0-SNAPSHOT.jar:/yhl/backend-1.0.0-SNAPSHOT.jar myproject // 运行docker环境 ~~~ 命令解释:这里的-v后面的地址,主要是做个一个容器卷,方面后面部署。部署话,直接把jar给替换掉,然后直接重新启动容器就行。 这样后端的docker环境就搞定了~ ### mysql-Docker环境 ~~~linux docker pull mysql:5.7 // 拉取mysql镜像 docker run -p 3306:3306 --name mysql -v /root/docker/mysql/conf:/etc/mysql -v /root/docker/mysql/logs:/var/log/mysql -v /root/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yuan@123456 -d mysql:5.7 // 运行docker镜像 ~~~ 命令比较简单 -v 后面就是挂载容器卷,存储mysql的log文件和配置文件及数据 ### redis-Docker 环境搭建 ~~~Linux docker pull redis // 拉去redis镜像 docker run -p 6379:6379 --name redis -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /root/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes // 运行redis镜像 ~~~ 注意这里如果redis启动成功后,不能访问,看是不是开启了保护模式。 ### jenkins-Docker自动化部署环境搭建 这个搭建我有写博客,直接点击[传送门](https://hlyuan.gitee.io/2021/01/04/jenkins/jenkins%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%EF%BC%9A%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB/)即可 ##前端 ```node npm install // 下载依赖 npm run dev // 运行环境 npm run build // 项目打包 ``` ### nginx-docker环境搭建 ~~~linux docker pull nginx // 拉取nginx镜像 docker run -it -d --name nginx -p 80:80 -v /root/docker/nginx/html:/usr/share/nginx/html -v /root/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/docker/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf -v /root/docker/nginx/logs:/var/log/nginx nginx:latest // 运行nginx镜像 ~~~ 这里我们部署的时候,需要把前端的打包后的文件给放在容器卷html(/root/docker/nginx/html)文件夹下面。 nginx.conf ~~~nginx user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; upstream myserver{ server 8.133.163.121:8089; } server{ listen 80; server_name localhost; location / { root /usr/share/nginx/html/dist; index index.html index.htm; } # 安全漏洞,点击劫持 add_header X-Frame-Options SAMEORIGN; # 代理后端地址 location /frontend { proxy_pass http://myserver; } error_page 500 502 503 504 /50x.html; proxy_connect_timeout 1; proxy_send_timeout 300; proxy_read_timeout 600; } sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } ~~~ 这样前端文件部署在nginx服务就部署好了,我们看nginx的配置文件,也可以明显看出来了,我们代理了/frontend开头的请求,当前端发送frontend开头的接口的时候,就会代理到myserver里,也就是后端地址:8.133.163.121:8089 ## 演示环境地址 http://8.133.163.121/ 目前现在还在开发阶段,后面会继续维护。 http://8.133.163.121:8089/doc.html 接口文档