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

docker-compose启动前后端分离项目(单机)

🌟docker-compose启动前后端

📁准备文件

  • xzs-mysql.sql(数据库脚本)
  • xzs-3.9.0.jar(后端代码)
  • application-prod.yml(后端配置文件)
  • entry.sh(后端启动脚本)
  • exam-web.tar.gz(前端代码)
  • exam.conf(前端配置文件)

📝书写Dockerfile-db

FROM mysql:8.0-debian
LABEL author=zhu desc="exam db"ENV MYSQL_ROOT_PASSWORD="1"
ENV MYSQL_DATABASE=exam
ENV MYSQL_USER=exam
ENV MYSQL_PASSWORD="1"ADD xzs-mysql.sql /docker-entrypoint-initdb.d/

📝书写Dockerfile-web-backend

FROM ubuntu:22.04
LABEL author=zhu desc="exam_ubuntu images"ENV VER=3.9.0
ENV ENVIR=prod
ENV CONF=application-${ENVIR}.yml
ENV CODE=xzs-${VER}.jar
ENV DIR=/app/code/exam/backend/RUN sed -ri 's#archive.ubuntu.com|security.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list \&& apt-get update \&& apt-get install -y openjdk-11-jdk curl \&& mkdir -p ${DIR}WORKDIR ${DIR}ADD ${CONF} .
ADD ${CODE} .
ADD entry.sh ./entry.shEXPOSE 8000CMD ["./entry.sh"]HEALTHCHECK --interval=5s --timeout=20s --retries=2 CMD curl http://127.0.0.1:8000

📝书写Dockerfile-web-front

FROM ubuntu:22.04
LABEL author=zhu desc="zrlog_ubuntu images"ENV CODE_NAME=exam-web.tar.gz
ENV CODE_DIR=/app/code/exam/front/
ENV CONF=exam.confRUN sed -ri 's#archive.ubuntu.com|security.ubuntu.com#mirrors.aliyun.com#g'   /etc/apt/sources.list \&& apt-get update \&& apt-get install -y nginx curl \&& mkdir -p ${CODE_DIR}ADD ${CODE_NAME} ${CODE_DIR}
ADD ${CONF} /etc/nginx/conf.d/EXPOSE 80 443CMD ["nginx","-g","daemon off;"]# 监控业务是否正常
HEALTHCHECK --interval=5s --timeout=20s --retries=2 CMD curl http://127.0.0.1:80

📝书写docker-compose

services:exam_backend:image: "web:exam_backend"networks:- exambuild:context: ./web-backend/dockerfile: Dockerfilecontainer_name: exam_backend_v1ports:- 8000:8000restart: alwaysdepends_on:- exam_dbexam_db:image: "web:exam_db"networks:- exambuild:context: ./db/dockerfile: Dockerfilecontainer_name: exam_db_v1ports:- 3306:3306- 33060:33060restart: alwaysvolumes:- data:/var/lib/mysql/exam_front:image: "web:exam_front"networks:- exambuild:context: ./web-front/dockerfile: Dockerfilecontainer_name: exam_front_v1ports:- 81:80restart: alwaysnetworks:exam:driver: bridgeipam:driver: defaultconfig:- subnet: 172.10.0.0/24gateway: 172.10.0.1volumes:data:

💡docker-compose生成镜像

docker-compose build

🚀docker-compose启动镜像

docker-compose up -d

🔍检查验证

docker-compose images
docker-compose ps

浏览器访问

http://student.zhubl.xyz/ 学生端 student 123456
http://admin.zhubl.xyz/   管理端 admin   123456


http://www.xdnf.cn/news/15946.html

相关文章:

  • ARFoundation系列讲解 - 101 VisionPro 真机调试
  • MySQL EXPLAIN 解读
  • DAY 20 奇异值分解(SVD)
  • ant+Jmeter+jenkins接口自动化,如何实现把执行失败的接口信息单独发邮件?
  • leetcode丑数II计算第n个丑数
  • zabbix服务器告警处理
  • 【milvus检索】milvus检索召回率
  • pages.json页面路由中,globalStyle的各个属性
  • 社交圈子系统开源社交源码 / 小程序+H5+APP 多端互通的底层技术分析
  • Ubuntu 24.04 设置静态 IP 的方法
  • 对LLM某一层进行优化:通过眼动数据发现中间层注重语句内在含义,进而对中间层参数优化
  • pthread_detach与pthread_join区别及使用场景
  • 408考研逐题详解:2010年第35题——RIP协议
  • BST(二叉搜索树)的笔试大题(C语言)
  • AG32:解锁MCU+FPGA应用新姿势,功能与实战全解析
  • SQL中的EXPLAIN命令详解
  • 【Linux】权限详解 权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别
  • Qt 应用程序入口代码分析
  • HarmonyOS 启动提速秘籍:懒加载全链路实战解析
  • mysql第三次作业
  • 什么是的优先级反转(Priority Inversion) 和 优先级继承(Priority Inheritance)?
  • Syncthing实时共享同步数据 服务器数据备份软件(linux、windows)
  • 《程序员修炼之道》第一二章读书笔记
  • 【ChatOpenAI】常用方法详解
  • Helm常用命令大全(2025最新版)
  • 二分查找-69.x的平方根-力扣(LeetCode)
  • 大语言模型置信度增强实战指南
  • (LeetCode 每日一题) 1233. 删除子文件夹 (排序)
  • 统计学习方法
  • 堆堆堆,咕咕咕