Docker-compose+Vue+Springboot+Redis+MySQL前后端项目部署在Liunx服务器上(流程梳理)
2022/1/9 2:04:09
本文主要是介绍Docker-compose+Vue+Springboot+Redis+MySQL前后端项目部署在Liunx服务器上(流程梳理),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 一、打包前的准备
- 1.修改前端代理访问后端的IP和端口
- 2.修改后端配置文件
- 二、前后端打包
- 1.前端打包
- 2.后端打包
- 三、上传和整理所需文件
- 四、使用docker-compose启动容器
- 五、后续处理
- 1.检查容器
- 2.导入数据库文件
- 3.最后注意点
- 总结
前言
近期把项目部署在服务器上差点把我给整崩,现在重新整理一下部署流程。这也算是做一次记录,防止以后忘记了。
一、打包前的准备
1.修改前端代理访问后端的IP和端口
代码如下(示例):
devServer: { port: 端口号, proxy: { '/URL': { target: 'http://“后端IP:后端的端口号', // 后端 } } }
2.修改后端配置文件
代码如下(示例):
* 下面是docker-compose.yml
version: '3' services: web-name: # 服务名称,用户自定义 image: nginx:latest # 镜像版本 container_name: '容器名' ports: …… …… - /…… - /…… …… redis: # 服务名 image: …… …… web-server: # 服务名 container_name: '容器名' build: . ports: …… mysql: # 服务名 image: …… ports: …… environment: ……
主要是将下面springboot配置文件里的IP地址修改成上面服务名
#数据库连接 # MySQL spring.datasource.url=jdbc:mysql://服务名(上面docker-compose.yml):3306/…… spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.username=# spring.datasource.password=# # Redis spring.redis.host= 服务名(同上) spring.redis.port=6379 spring.redis.password=cl20030525
二、前后端打包
1.前端打包
在IDEA的控制台里直接输入:npm run build
2.后端打包
在maven里点clean----compile—package
三、上传和整理所需文件
* 注:这里的dist和web-server.jar是前后端项目的包
这里的Dockerfile之后直接通过docker-compose直接构建,不需要 docker build
FROM java:8 # 基础镜像 ADD web-server.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=pro"]
nginx内容
server { listen 80; #这里监听的容器是端口 server_name ***.**.** localhost; #这里主要写IP或域名(服务器或虚拟机的)注:多个可以用空格隔开 location / { #URL root /usr/share/nginx/html; try_files $uri $uri/ /index.html last; index index.html index.htm; } location /URL { #URL地址的内容 如 http://**:**/URL/ proxy_pass http://101.43.45.79:9999; #代理转发 proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
四、使用docker-compose启动容器
使用 “ docker-compose up -d ” 后台运行容器 (注:需要在docker-compose.yml文件下执行命令)
代码如下(示例):
version: '3' services: web-name: # 服务名称,用户自定义 image: nginx:latest # 镜像版本 container_name: '容器名' ports: - 3000:80 # 暴露端口 volumes: # 挂载 - /home/ly/docker-boot/dockerweb/dist/:/usr/share/nginx/html #前端项目的包挂载到nginx上 - /home/ly/docker-boot/dockerweb/nginx.conf:/etc/nginx/conf.d/nginx.conf #挂载nginx配置文件 privileged: true redis: # 服务名 image: redis:latest command: redis-server --requirepass ***** # 设置Redis的密码 web-server: # 服务名 container_name: '容器名' build: . # 这里是直接构建Dockerfiler ports: - 9999:8080 mysql: # 服务名 image: mysql:5.7.36 ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=root #设置MySQL用户的密码
五、后续处理
1.检查容器
使用 docker ps 可以查看所有运行中容器(注:有些容器没出现可以用 “ docker ps -a ” 找到,出现这种情况可能是容器内部出错,使用 “docker logs -f 容器ID或容器名 ” 可查看错误)
2.导入数据库文件
使用 “docker cp 文件名 容器ID:路径” 复制进容器里(注:将文件复制出来只需交换文件名与容器ID和路径即可)
例:docker cp project.sql 35bf7e18ce27:/
进入容器使用:docker exec -it 容器ID /bin/bash
导入文件:
root@35bf7e18ce27:/# mysql -u root -p < projectdb.sql #一般默认为root Enter password: #这里填docker-compose里的密码
3.最后注意点
一定一定一定要重启前后端容器,我就是在这里未重启,导致好几天前端请求不到后端。
重启命令:
docker-compose 为:docker-compose restart 前端服务名 后端服务名(就是上面的docker-comopse.yml里的服务名)
docker 为:docker restart 容器ID (不确定多个容器能否使用空格隔开)
总结
例如:以上就是部署项目的内容,以后可能会加些细节。这篇关于Docker-compose+Vue+Springboot+Redis+MySQL前后端项目部署在Liunx服务器上(流程梳理)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门