You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Spring Boot+MySQL应用时出现Exit status 1错误

Spring Boot容器化连接MySQL失败(Connection refused)解决方案

你的问题核心是**depends_on仅确保MySQL容器先启动,但不保证MySQL服务完全就绪**,Spring Boot应用启动时尝试连接还未初始化完成的MySQL,导致连接被拒绝。另外还有几个小配置细节需要调整,以下是具体解决步骤:

1. 添加MySQL健康检查,确保服务就绪

修改Docker Compose配置,让api_service等待MySQL服务真正可用后再启动:

version: "3.7"
services:
  mysql:
    image: mysql:5.6.33
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: roots
      MYSQL_DATABASE: oks
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proots"]
      interval: 5s
      timeout: 5s
      retries: 10
  api_service:
    build: ./oks-api
    ports:
      - 8081:8081
    depends_on:
      mysql:
        condition: service_healthy
    environment:
      spring.datasource.url: jdbc:mysql://mysql/oks?characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
      spring.datasource.username: root
      spring.datasource.password: roots
      spring.profiles.active: develop

2. 修正MySQL驱动与版本兼容配置

你使用的MySQL5.6搭配mysql-connector-j-8.3.0,需要调整Hibernate方言并补充兼容参数:

# application-develop.properties
spring.datasource.url=jdbc:mysql://localhost:3306/oks?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=roots
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
server.port=8081

3. 优化Dockerfile构建流程

当前Dockerfile的build阶段未实际执行构建,建议改为容器内完成编译,避免本地环境差异:

# 构建阶段
FROM maven:3.8.3-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests

# 运行阶段
FROM openjdk:17-jdk-slim
EXPOSE 8081
WORKDIR /app
COPY --from=build /app/target/oks-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

4. 验证启动

执行以下命令启动服务,查看日志确认MySQL健康检查通过后api_service才启动:

docker-compose up --build

内容的提问来源于stack exchange,提问作者izhar ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 02:55:32