🌟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