Docker-Compose部署Springboot项目

Docker Compose通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

一、准备资源

1.mysql:

educate.sql

2.服务端:

上传打包好的jar包和编写好的dockerfile文件

这里Dockerfile的编写我使用的是open jdk:11.0-jre-buster,直接通过docker拉取镜像,不用自己手动进行jre的环境配置,节省了很多繁琐的步骤。

Dockerfile

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY eduacate-service.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
3.前端:

前端项目打包文件放到html中

nginx.conf配置文件

二、准备docker-compose.yml配置文件

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - yishuocheng-net
  educate:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: educate
    ports:
      - "8080:8080"
    networks:
      - yishuocheng-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - educate
    networks:
      - yishuocheng-net
networks:
  yishuocheng-net:
    name: yishuocheng

三、快速构建项目

docker compose up -d

四、项目效果

五、移除项目

docker compose down

总结:

对于我们所准备的资源文件,像mysql、nginx、jar包、DockerFile文件最后和Docker-Compose.yml放在同一目录里面,方便Docker-Compose.yml文件的编写与统一管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值