当前位置:   article > 正文

手把手教你使用Docker部署Vue+Springboot项目(详细版)_docker部署springboot+vue项目

docker部署springboot+vue项目

目录

前端

一、将Vue项目打包

二、将打包的dist放入到服务器中的一个文件夹中

三、在存放dist的这个文件夹中新建两个文件

四、用docker构建镜像

五、用docker构建容器

后端

六、将springboot项目打包

七、新建一个文件夹,和前端项目平级的文件夹,将打包好的jar包放进去

八、在这个文件夹中创建Dockerfile文件

九、用docker构建镜像

十、用docker构建容器

数据库

前端

一、将Vue项目打包

二、将打包的dist放入到服务器中的一个文件夹中

三、在存放dist的这个文件夹中新建两个文件

Dockerfile文件内容

  1. FROM nginx
  2. MAINTAINER onesummer
  3. ADD default.conf /etc/nginx/conf.d/
  4. COPY dist/ /usr/share/nginx/html/
  1. FROM nginx:该镜像是基于nginx:latest镜像构建的
  2. MAINTAINER onesummer:添加说明
  3. ADD default.conf /etc/nginx/conf.d/:将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置
  4. COPY dist/ /usr/share/nginx/html/:将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下

default.conf文件内容

  1. server {
  2. listen 80;
  3. server_name localhost; # 修改为docker服务宿主机的ip
  4. location / {
  5. root /usr/share/nginx/html;
  6. index index.html index.htm;
  7. try_files $uri $uri/ /index.html =404;
  8. }
  9. location ^~/energe/backend{
  10. proxy_pass http://127.0.0.1:5000; //修改为部署后端的IP+端口,用于前后端联通
  11. proxy_read_timeout 120s;
  12. }
  13. error_page 500 502 503 504 /50x.html;
  14. location = /50x.html {
  15. root html;
  16. }
  17. }

四、用docker构建镜像

 在前端的文件夹目录下输入docker指令

dcoker build -t vue3-test-front .   //vue3-test-front是镜像名字

 五、用docker构建容器

继续输入docker指令,通过镜像构建容器

docker run -d -p 92:80 --name vue3-first-front vue3-first-front

在电脑中打开127.0.0.1:92进行测试,是否成功部署前端页面 

注:default.conf里面不需要加http

http需要删除,以下是错误示例

  1. http{
  2. server {
  3. listen 80;
  4. server_name localhost; # 修改为docker服务宿主机的ip
  5. location / {
  6. root /usr/share/nginx/html;
  7. index index.html index.htm;
  8. try_files $uri $uri/ /index.html =404;
  9. }
  10. location ^~/energe/backend{
  11. proxy_pass http://127.0.0.1:5000;
  12. proxy_read_timeout 120s;
  13. }
  14. error_page 500 502 503 504 /50x.html;
  15. location = /50x.html {
  16. root html;
  17. }
  18. }
  19. }

当该子配置文件加载到主配置文件时,整体结构会是这样:

  1. http {
  2. http{
  3. server {
  4. listen 80;
  5. server_name localhost; # 修改为docker服务宿主机的ip
  6. location / {
  7. root /usr/share/nginx/html;
  8. index index.html index.htm;
  9. try_files $uri $uri/ /index.html =404;
  10. }
  11. location ^~/energe/backend{
  12. proxy_pass http://127.0.0.1:5000;
  13. proxy_read_timeout 120s;
  14. }
  15. error_page 500 502 503 504 /50x.html;
  16. location = /50x.html {
  17. root html;
  18. }
  19. }
  20. }
  21. }
  22. }

所以就会报异常。

子配置文件的话直接这样写就OK了

  1. server {
  2. listen 80;
  3. server_name localhost; # 修改为docker服务宿主机的ip
  4. location / {
  5. root /usr/share/nginx/html;
  6. index index.html index.htm;
  7. try_files $uri $uri/ /index.html =404;
  8. }
  9. location ^~/energe/backend{
  10. proxy_pass http://127.0.0.1:5000;
  11. proxy_read_timeout 120s;
  12. }
  13. error_page 500 502 503 504 /50x.html;
  14. location = /50x.html {
  15. root html;
  16. }
  17. }

后端

六、将springboot项目打包

七、新建一个文件夹,和前端项目平级的文件夹,将打包好的jar包放进去

八、在这个文件夹中创建Dockerfile文件

Dockerfile文件内容

  1. FROM openjdk:8
  2. ADD ./smart-recruit.jar app.jar
  3. EXPOSE 5000
  4. CMD java -jar app.jar
  1. FROM openjdk:8 //指定了基础镜像为OpenJDK 8
  2. ADD ./smart-recruit.jar app.jar /将当前目录下的smart-recruit.jar文件复制到镜像的/app目录下,并将其命名为app.jar
  3. EXPOSE 5000 //声明了容器将监听5000端口 在springboot程序中的sever port同样要填这个端口
  4. CMD java -jar app.jar //设置了容器启动时运行的命令,即运行app.jar文件

Dockerfile文件中不要加注释,否则容易报错

九、用docker构建镜像

 在后端的文件夹目录下输入docker指令

docker build -f ./Dockerfile -t vue3-test-back .

十、用docker构建容器

继续输入docker指令,通过镜像构建容器 

docker run -id -p 5000:5000 vue3-test-back

在电脑中打开127.0.0.1:92进行测试,查看是否前后端联通。

数据库

sql文件也需要通过navicat软件放入相应的服务器中的数据库中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/808475
推荐阅读
相关标签
  

闽ICP备14008679号