应用发布指南 🌐
This content is not available in your language yet.
本章节将指导您如何将 Feat 应用打包并部署到生产环境。我们将介绍从构建可执行 jar 包到容器化部署的完整流程。
构建可执行 jar
Feat 应用可以通过 Maven 的 maven-shade-plugin
插件打包成一个包含所有依赖的可执行 jar 包(也称为 fat jar)。
在 pom.xml
中添加以下配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>your.package.MainClass</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins></build>
执行以下命令进行打包:
mvn clean package
构建 Docker 镜像
编写 Dockerfile
创建 Dockerfile
文件,内容如下:
# 使用 JRE 基础镜像FROM eclipse-temurin:8-jre
# 设置工作目录WORKDOME /app
# 复制 jar 包COPY target/your-application.jar app.jar
# 设置环境变量ENV JAVA_OPTS=""
# 暴露端口EXPOSE 8080
# 启动命令ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
构建镜像
执行以下命令构建 Docker 镜像:
docker build -t your-application:latest .
多环境配置管理
Feat 支持通过环境变量进行配置管理,这在容器化部署时特别有用。
配置优先级
- 命令行参数
- 环境变量
- 配置文件
环境变量配置示例
# 设置服务端口export FEAT_SERVER_PORT=8080
# 设置数据库连接export FEAT_DB_URL=jdbc:mysql://localhost:3306/db_nameexport FEAT_DB_USERNAME=rootexport FEAT_DB_PASSWORD=password
容器化部署优化
JVM 调优
在容器环境中运行 Java 应用时,建议添加以下 JVM 参数:
JAVA_OPTS="\ -XX:+UseContainerSupport \ -XX:InitialRAMPercentage=70.0 \ -XX:MaxRAMPercentage=70.0 \ -XX:+HeapDumpOnOutOfMemoryError"
镜像优化
- 使用多阶段构建减小镜像大小
- 合理设置 JVM 堆内存
- 使用 Alpine 基础镜像进一步减小体积
健康检查
在 Docker 运行时添加健康检查:
docker run -d \ --health-cmd="curl -f http://localhost:8080/health || exit 1" \ --health-interval=5s \ --health-retries=3 \ your-application:latest
部署示例
使用 Docker Compose
创建 docker-compose.yml
文件:
version: '3'services: app: image: your-application:latest ports: - "8080:8080" environment: - FEAT_SERVER_PORT=8080 - JAVA_OPTS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=70.0 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 5s timeout: 3s retries: 3
启动服务:
docker-compose up -d