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

网站用户反馈今日军事新闻最新消息中国

网站用户反馈,今日军事新闻最新消息中国,网站建设电话销售话术,专业的广州商城网站建设使用 Docker 搭建 Java(SpringBoot)开发环境 本指南介绍如何用 Docker 和 Docker Compose 构建典型的 Java(Spring Boot)应用开发环境,并集成常用中间件服务,如 MySQL、Redis、Kafka。适用于个人开发、团队…

使用 Docker 搭建 Java(SpringBoot)开发环境

本指南介绍如何用 Docker 和 Docker Compose 构建典型的 Java(Spring Boot)应用开发环境,并集成常用中间件服务,如 MySQL、Redis、Kafka。适用于个人开发、团队协作与一体化本地测试。

一、目录结构建议

project-root/
├── app/                   # SpringBoot 应用源码目录
│   ├── Dockerfile
│   └── ...
├── docker-compose.yml     # Compose 主配置
├── mysql-data/            # MySQL 数据卷(本地开发用,加入 .gitignore)
├── redis-data/            # Redis 数据卷(同上)
└── .env                   # 环境变量配置(如端口、密码,勿提交敏感数据)

二、SpringBoot 应用 Dockerfile 示例

# app/Dockerfile
FROM eclipse-temurin:17-jdk-alpine
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
  • 注意:构建镜像前需本地或CI中打包 mvn clean package -DskipTests 生成 jar 包。

三、docker-compose.yml 配置详解

version: "3.9"
services:app:build:context: ./appdockerfile: Dockerfilecontainer_name: springboot-appports:- "8080:8080"environment:SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/devdb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTCSPRING_DATASOURCE_USERNAME: devuserSPRING_DATASOURCE_PASSWORD: devpassSPRING_REDIS_HOST: redisSPRING_REDIS_PORT: 6379SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:9092depends_on:- mysql- redis- kafkamysql:image: mysql:8.0container_name: mysqlrestart: alwaysports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: rootpassMYSQL_DATABASE: devdbMYSQL_USER: devuserMYSQL_PASSWORD: devpassvolumes:- ./mysql-data:/var/lib/mysqlredis:image: redis:7container_name: redisrestart: alwaysports:- "6379:6379"volumes:- ./redis-data:/datazookeeper:image: bitnami/zookeeper:3.8container_name: zookeeperenvironment:- ALLOW_ANONYMOUS_LOGIN=yesports:- "2181:2181"kafka:image: bitnami/kafka:3.5container_name: kafkadepends_on:- zookeeperenvironment:KAFKA_BROKER_ID: 1KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181KAFKA_CFG_LISTENERS: PLAINTEXT://:9092KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092ALLOW_PLAINTEXT_LISTENER: "yes"ports:- "9092:9092"

说明

  • depends_on 保证应用启动顺序,但不保证服务已完全就绪,生产建议配合 healthcheck。
  • 各服务通过服务名(如 mysql、redis、kafka)互联,SpringBoot 只需用服务名作为 host。

四、运行流程

  1. 构建 SpringBoot 应用 jar 包
    cd app
    mvn clean package -DskipTests
    cd ..
    
  2. 启动所有服务
    docker compose up -d --build
    
  3. 查看服务状态
    docker compose ps
    
  4. 查看应用日志
    docker compose logs -f app
    
  5. 访问应用
    • 浏览器或 Postman 访问 http://localhost:8080

五、常见注意事项

  1. 端口冲突

    • 如本地已有 MySQL/Redis 服务,需调整 compose 暴露端口或关闭本地服务。
  2. 数据持久化

    • 挂载本地目录(如 mysql-data/、redis-data/)避免容器重启后数据丢失。
    • 不建议将这些数据卷提交进版本控制(加入 .gitignore)。
  3. 环境变量与配置安全

    • .env 文件可集中管理端口、密码等,生产环境应避免明文密码。
    • 不要把敏感数据上传到代码仓库。
  4. Kafka 配置

    • Kafka 依赖 Zookeeper,需保证 Zookeeper 先启动。
    • 默认配置适合开发调试,生产建议单独网络、鉴权等更严格配置。
  5. 服务连接

    • SpringBoot 的配置中数据库、Redis、Kafka 的 host 必须与 Compose 服务名一致。
    • 配置样例(application.yml):
      spring:datasource:url: jdbc:mysql://mysql:3306/devdb?...username: devuserpassword: devpassredis:host: redisport: 6379kafka:bootstrap-servers: kafka:9092
      
  6. 热部署开发

    • 推荐用 IDE 的远程调试、或挂载源码进容器实现热部署(可选)。
    • 也可开发时本地运行 SpringBoot,仅用 Docker 启动中间件。
  7. 初次启动慢

    • 首次启动需拉取镜像,视网速可能较慢,后续会提升。
    • 如需要更多中间件(如 MongoDB、RabbitMQ),可按需添加 service。

六、推荐扩展

  • 数据库初始化脚本:可将 sql 脚本挂载到 /docker-entrypoint-initdb.d/(MySQL)。
  • 自定义网络:如需与其他项目互通,可用 networks 字段自定义网络。
  • 健康检查:为关键服务添加 healthcheck,提升健壮性。
  • 分环境配置:用不同 docker-compose.override.yml 管理开发/测试/生产环境差异。

七、参考资料

  • Spring Boot 官方文档
  • Docker Compose 官方文档
  • Bitnami Kafka 镜像说明
  • MySQL Docker 镜像说明
  • Redis Docker 镜像说明
http://www.dtcms.com/wzjs/273243.html

相关文章:

  • 南宁网站排名优化电话百度seo怎么查排名
  • 酒庄企业网站品牌策划与推广方案
  • 必应网站首页的图片怎么做的36优化大师下载安装
  • 书画院网站建设方案郑州专业seo哪家好
  • 南通做网站需要多少钱苏州疫情最新通知
  • 美女做羞羞的视频网站百度一下搜索网页
  • 搭建网站后的网址页面seo优化
  • 网站建设推广方案模版国际重大新闻事件2023
  • 做网站怎么建站点100个常用的关键词
  • 破网站怎么注册怎么在百度上添加自己的店铺地址
  • 成功网站运营案例营销培训总结
  • 鹤壁网站建设公司武汉网站提升排名
  • 无法创建网站 未能找到web服务器seo优化外包
  • 淄博建站网络公司网络营销软件排行
  • 江阴做网站哪家好品牌管理
  • 杭州网站建设哪家快速上线百度关键词购买
  • 石家庄营销型网站建设公司游戏代理300元一天
  • 做怎样的网站能赚钱吗seo关键词排名优化官网
  • wordpress物流主题广州seo技术外包公司
  • 网站内如何@沈阳seo优化
  • 小组动态网站开发实训心得总结东莞网络营销渠道
  • 做外贸的网站主要有哪些内容百度app官网
  • 用avada做网站首页青岛建站seo公司
  • 网站如何进行优化手游推广渠道
  • 辽宁做网站找谁seo专业技术培训
  • 广州企业网站营销电话百度指数数据
  • 网站 网页数量临沂森佳木业有限公司
  • 营销管理网站制作免费自助建站模板
  • 网站建设模板源代码会计培训班要多少钱一般要学多久
  • 网站设计与制作的基本步骤友情链接发布网