当前位置: 首页 > news >正文

将项目部署到docker容器上

通过docker部署前后端项目

前置条件

需要在docker中拉去jdk镜像、nginx镜像

docker pull openjdk:17 #拉取openjdk17镜像
docker pull nginx #拉取nginx镜像

部署后端

1.打包后端项目

点击maven插件下面的Lifecycle的package 对后端项目进行打包 等待打包完成即可
在这里插入图片描述

2.将打包好的jar包上传到服务器

将打包好的项目jar包直接上传到服务器上面即可
在这里插入图片描述

3.配置dockerfile文件

vim dockerfile #vim文本编辑器

在这里插入图片描述

FROM openjdk:17 #jdk版本RUN mkdir /app COPY canteen-0.0.1-SNAPSHOT.jar  /app/CMD java -jar  /app/canteen-0.0.1-SNAPSHOT.jarEXPOSE 8088 # 暴露端口

4.构建成docker镜像

执行docker build -t 完成镜像构建

docker build -t canteen . # 构建镜像
# 等待构建完成后执行docker查看镜像是否构建成功
docker images #查看镜像

在这里插入图片描述

5.运行docker镜像

执行下述命令完成docker命令完成容器启动

docker run -d -p 8088:8088 --restart unless-stopped --name app canteen # -p 端口映射 --restart 设置为开机自启动

在这里插入图片描述

如果能看到上诉信息就说明后端项目部署成功

部署前端vue项目

1.打包前端项目

在前端项目执行npm run build对vue项目进行打包

npm run build

等待构建完成后在会出现dist文件夹 dist文件下即为vue项目的依赖和文件

在这里插入图片描述

2.上传至阿里云服务器

在这里插入图片描述

3.编写default.conf配置文件

在dist同层目录下 vim default.conf 进入vim编辑器完成default.conf的配置

在这里插入图片描述

server {listen       80;server_name  docker_ip_address; # 修改为docker服务宿主机的iplocation / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html =404;}# 跨域配置location /api {rewrite ^/api/(.*)$  /$1 break;proxy_pass http://backend_server_ip:port/;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

4.编写dockerfile文件

同理通过vim dockerfile 完成dockerfile的配置

vim Dockerfile

在这里插入图片描述

FROM nginxMAINTAINER travelerRUN rm /etc/nginx/conf.d/default.confADD default.conf /etc/nginx/conf.d/COPY dist/ /usr/share/nginx/html/

5.构建docker镜像

执行docker build 完成镜像的配置

docker build -t webapp . # 构建镜像
# 等待构建完成后执行docker查看镜像是否构建成功
docker images #查看镜像

在这里插入图片描述

6.启动镜像容器

启动docker镜像

docker run -p 80:80 -d --name webapp webapp

在这里插入图片描述

查看最终效果

在这里插入图片描述

到此就完成前后端项目的部署啦

http://www.lryc.cn/news/410408.html

相关文章:

  • 免费【2024】springboot宠物美容机构CRM系统设计与实现
  • 搞懂数据结构与Java实现
  • Stable Diffusion 图生图
  • 语言转文字
  • ref函数
  • 7/30 bom和dom
  • 【Golang 面试 - 进阶题】每日 3 题(五)
  • MySQL,GROUP BY子句的作用是什么?having和where的区别在哪里说一下jdbc的流程
  • 1._专题1_双指针_C++
  • Spring集成ES
  • 力扣高频SQL 50题(基础版)第二十六题
  • WIFI 接收机和发射机同步问题+CFO/SFO频率偏移问题
  • ubuntu安装并配置flameshot截图软件
  • 【Linux】CentOS更换国内阿里云yum源(超详细)
  • Leetcode49. 字母异位词分组(java实现)
  • OpenJudge | 字符串中最长的连续出现的字符
  • 11day-C++list容器使用
  • docker 常用管理命令及数据备份
  • 前端开发:Vue2.0桌面组件库-Element
  • Java常见的面试二
  • 【Qt】QLCDNumberQProgressBarQCalendarWidget
  • C++ 代码实现局域网即时通信功能 (windows 系统 客户端)
  • 机器人阻抗控制实现方法及其存在的科学问题
  • 解决:xxx.xxx/res/modules/.ds_store: error: the file name must end with .xml 问题
  • EEtrade:区块链技术的五大应用场景
  • DAO、DPO、DTO、POJO、VO、BO、EBO
  • 数据库期末复习
  • pyinstaller带浏览器一起打包playwright 独立运行exe
  • docker添加容器服务所需字体
  • Java面试八股之Spring AOP 和 AspectJ AOP 的区别