实操-docker-compose 部署一个springboot+mysql的项目

docker-compose 部署一个springboot+mysql的项目

1: 准备Spring Boot应用

确保应用能够正常运行,并打成jar包

2: 创建Dockerfile

复制代码
# 使用官方Spring Boot作为父镜像  
FROM openjdk:8 

# 将jar包添加到容器中并更名为app.jar 
# JAR_FILE变量的路径与你的jar包实际位置相匹配。 
ARG JAR_FILE=target/*.jar  
COPY ${JAR_FILE} app.jar  

# 容器启动时运行jar包  
ENTRYPOINT ["java","-jar","/app.jar"]  

# 暴露端口  
EXPOSE 8080

3: 创建docker-compose.yml

复制代码
version: '3.8'  

services:  
db:  
    image: mysql:8.0  
    container_name: mysql-db  
    environment:  
    MYSQL_ROOT_PASSWORD: root  
    MYSQL_DATABASE: yourdatabase  
    MYSQL_USER: user  
    MYSQL_PASSWORD: password  
    volumes:  
    - db-data:/var/lib/mysql  
    # 容器的初始化过程中执行一个SQL脚本,假设你的SQL文件在当前目录下的init文件夹中
    - ./init:/docker-entrypoint-initdb.d/ 
    ports:  
    - "3306:3306"  

app:  
    build:  
    context: .  
    dockerfile: Dockerfile  
    image: your-spring-boot-app  
    container_name: spring-boot-app  
    ports:  
    - "8080:8080"  
    depends_on:  
    - db  
    environment:  
    SPRING_DATASOURCE_URL: jdbc:mysql://mysql-db:3306/yourdatabase?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
    SPRING_DATASOURCE_USERNAME: user  
    SPRING_DATASOURCE_PASSWORD: password  
    volumes:  
    - app-data:/app/data
    - ./logs:/app/logs 


volumes:  
    db-data:  
    app-data:  
    logs:

4: 构建和运行

复制代码
# 构建
docker-compose build

# 不使用缓存构建
docker-compose build --no-cache

# 启动服务
docker-compose up

# 后台启动
docker-compose up -d

# 停止
docker-compose stop

# 重新启动
docker-compose restart

# 查看所有docker-compose 构建的服务
docker-compose ps -a

# 查看日志
docker-compose logs  

# 或者查看特定服务的日志  
docker-compose logs <服务名称>
相关推荐
刘~浪地球14 分钟前
云原生与容器--Docker 容器化最佳实践
docker·云原生·容器
阿虎儿14 分钟前
Spring Boot 4常用依赖包解析与场景搭配
spring boot
蓝天白云下遛狗16 分钟前
关于多网卡情况下docker内部网络通讯研究
运维·docker·容器
富士康质检员张全蛋20 分钟前
安装完成Docker之后配置修改相关的内核参数
docker·容器
Java面试题总结25 分钟前
Spring Boot 包扫描新姿势:AutoScan vs @Import vs @ComponentScan 深度对比
java·数据库·spring boot
geovindu34 分钟前
go: Model,Interface,DAL ,Factory,BLL using mysql
开发语言·mysql·设计模式·golang·软件构建
虞十三34 分钟前
AtomGit 开源入门全攻略:环境搭建 + Git/Docker 实操 + 新手避坑(全平台版)
git·docker·容器
梦想与想象-广州大智汇1 小时前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
李李李li1 小时前
linux x86 离线安装docker 27.5.0
linux·docker·eureka
却话巴山夜雨时i1 小时前
互联网大厂Java面试:从Spring Boot到Kafka的业务场景深度剖析
spring boot·redis·spring cloud·微服务·kafka·prometheus·java面试