Docker-Compose + Nginx 部署前后端分离项目(1)

去到安装目录检查:下载成功!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L67wgYA2-1638621063063)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204194512017.png)]

2、设置文件可执行权限

sudo chmod +x /usr/local/bin/docker-compose

3、查看版本信息

docker-compose -version

4、卸载Docker-Compose

sudo rm /usr/local/bin/docker-compose

注意:安装有问题的话使用如下命令卸载!

如上环境准备完毕的话开始编写相关配置文件!

预览一下:所有配置文件结束后的架构,再root目录下,按照如下规则把nginx的目录和html目录创建出来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k6DlQ6bh-1638621063064)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204195826542.png)]

从左到右分别是

  • html(目录):存放我们Vue的前端项目打包后的结果!

  • nginx.conf : 我们Nginx的核心配置

  • blog-api:我们的后端的Spriongboot项目打的jar包

  • docker-compose.yml:我们Docker-Compose的核心配置文件

  • Dockerfile:我们的Springboot项目,无法直接在DockerHub拉取,需要借助其built镜像

接下来让我们的逐个击破

四、编写配置文件


4.1、编写Docker-Compose.yml

version: ‘3’

services:

nginx: #服务名称

image: nginx:latest

ports:

  • 80:80

volumes:

  • /root/nginx/html:/usr/share/nginx/html #挂载:前面是挂载到哪儿,后面是nginx得配置目录

  • /root/nginx/nginx.conf:/etc/nginx/nginx.conf

privileged: true #解决nginx得文件调用权限的问题

mysql:

image: mysql:5.7

ports:

  • 3307:3306 #前面是宿主机的端口,后边是容器自身的端口

environment:

  • MYSQL_ROOT_PASSWORD= #输入自己的密码

redis:

image: redis:latest

vueblog:

image: vueblog:latest

build: .

ports:

  • 8888:8888

depends_on:

  • mysql

  • redis

4.2、编写Dockerfile

FROM java:8

EXPOSE 8888

ADD blog-api-1.0-SNAPSHOT.jar app.jar #前半部分,自己项目打包后的名称!

RUN bash -c ‘touch /app.jar’

ENTRYPOINT [“java”,“-jar”,“/app.jar”,“–spring.profiles.active=prod”]

已经解决图中的2个了,并且将2个配置文件上传到/root目录下

五、后端项目打包


由于我们的是2个模块,不要直接Maven声明周期直接package,采用如下方法

5.1、打包预处理

如下的三处配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7VLPSzti-1638621063065)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204201339338.png)]

跨域的配置记得改了:不然本地跨域的处理是无效的!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FskRoQSX-1638621063066)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204201427282.png)]

5.2、开始打包

、

选择+号,找到Maven,进行如下配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4166ExJ5-1638621063066)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204200751998.png)]

找到target就会发现已经打成jar包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r4pIwnRV-1638621063067)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204201029224.png)]

完成,然后将其上传服务器/root目录下

六、前端项目打包


6.1、打包预处理

把生产环境下的这个配置问文件改为ip+端口+请求前缀

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jIBok5kE-1638621063067)(C:\Users\48107\AppData\Roaming\Typora\typora-user-images\image-20211204201206737.png)]

6.2、开始打包

终端下执行npm run build

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dSVK63y7-1638621063068)(Docker-Compose + Nginx 部署前后端分离项目.assets/image-20211204202008736.png)]

完成,然后将其上传服务的html目录下

七、编写Nginx的配置


7.1、编写nginx.conf

worker_processes 1;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

try_files $uri $uri/ /index.html last; #千万加上!

index index.html index.htm;

写在最后

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!

由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

蚂蚁、京东Java岗4面:原理+索引+底层+分布式+优化等,已拿offer

; #千万加上!

index index.html index.htm;

写在最后

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!

由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里

[外链图片转存中…(img-V7g2k2YE-1714285834566)]

[外链图片转存中…(img-tFNQB2SU-1714285834567)]

[外链图片转存中…(img-qZF7PUH6-1714285834567)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值