Spring项目部署到Docker
1. 准备 Spring 项目
确保你的 Spring 项目已经开发完成,且能在本地正常运行。项目一般需打包成可执行的 JAR 或 WAR 文件,以 Maven 项目为例,在项目根目录下执行以下命令进行打包:
mvn clean package
执行完上述命令后,会在项目的 target
(Maven)目录下生成相应的 JAR 文件。
2. 创建 Dockerfile
Dockerfile 是一个文本文件,用于定义 Docker 镜像的构建步骤。在 Spring 项目的根目录下创建一个名为 Dockerfile
的文件
使用 JAR 包部署
# 使用官方的 OpenJDK 基础镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 将打包好的 JAR 文件复制到容器的工作目录
COPY target/your-project-name.jar app.jar
# 暴露应用运行的端口,需与 Spring 项目配置的端口一致
EXPOSE 8080
# 定义容器启动时执行的命令
CMD ["java", "-jar", "app.jar"]
注意将 your-project-name.jar
替换为实际生成的文件名。
3. 构建 Docker 镜像
在包含 Dockerfile
的项目根目录下,执行以下命令构建 Docker 镜像:
docker build -t your-image-name:your-image-tag .
-t
:用于指定镜像的名称和标签,例如spring-app:1.0
。.
:表示使用当前目录下的Dockerfile
进行构建。
4. 验证镜像构建
执行以下命令查看已构建的 Docker 镜像:
docker images
能看到刚刚构建的 your-image-name:your-image-tag
镜像。
5. 运行 Docker 容器
构建好镜像后,可使用以下命令基于该镜像运行 Docker 容器:
docker run -d -p 8080:8080 your-image-name:your-image-tag
6. 验证部署
在浏览器中输入 http://localhost:8080
(如果使用了其他端口,需相应修改),若看到 Spring 项目的页面或正常响应,说明部署成功。
补充操作(实战经验)
数据卷挂载
如果 Spring 项目需要访问外部数据或保存数据到主机,可以使用数据卷挂载。例如,将主机的 data
目录挂载到容器的 /app/data
目录:
docker run -d -p 8080:8080 -v /host/path/data:/app/data your-image-name:your-image-tag
环境变量配置
若 Spring 项目需要使用环境变量进行配置,可以在运行容器时通过 -e
参数传递环境变量。例如:
docker run -d -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod your-image-name:your-image-tag
上述命令将 SPRING_PROFILES_ACTIVE
环境变量设置为 prod
,表示使用生产环境配置。