SpringBoot 项目 Docker 容器化部署——从 Dockerfile 到 Compose
·
Docker 是当前最主流的应用部署方式。这篇讲 SpringBoot 项目如何容器化,从编写 Dockerfile 到使用 Docker Compose 编排多容器。
一、Dockerfile
FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY target/seckill-system.jar app.jar
EXPOSE 9090
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"]
多阶段构建
# 第一阶段:编译
FROM maven:3.8-openjdk-17 AS builder
WORKDIR /build
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests
# 第二阶段:运行
FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY --from=builder /build/target/*.jar app.jar
EXPOSE 9090
ENTRYPOINT ["java", "-jar", "app.jar"]
二、Docker Compose
version: '3.8'
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: seckill_db
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:7-alpine
ports:
- "6379:6379"
app:
build: .
ports:
- "9090:9090"
depends_on:
- mysql
- redis
environment:
DB_HOST: mysql
DB_USER: root
DB_PASSWORD: 123456
SPRING_REDIS_HOST: redis
volumes:
mysql_data:
💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!
更多推荐


所有评论(0)