Skip to content

Commit af66515

Browse files
committed
tio-mvc.dockerfile
1 parent 3682ad1 commit af66515

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed
Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
1-
FROM maven:3.9.7-amazoncorretto-21 as maven
1+
# 第一阶段:使用 Maven 构建并打包
2+
FROM maven:3.9.7-amazoncorretto-21 AS build
23
WORKDIR /t-io
3-
COPY pom.xml pom.xml
4-
COPY src src
5-
COPY script script
6-
RUN mvn package -q
74

5+
# 先复制 pom.xml,再复制源代码和脚本目录
6+
COPY pom.xml .
7+
COPY src ./src
8+
COPY script ./script
9+
10+
# 执行 package,会触发 maven-assembly-plugin 生成 target/tio-http-server-benchmark/ 目录,
11+
# 该目录下应包含一个可运行的 JAR(tio-http-server-benchmark.jar)和一个 config 子目录
12+
RUN mvn clean package -q
13+
14+
# 第二阶段:运行时镜像
815
FROM openjdk:21-jdk-slim
16+
# 切换到与第一阶段输出目录对应的工作目录
917
WORKDIR /t-io/target/tio-http-server-benchmark
1018

11-
EXPOSE 8080
12-
13-
CMD ["java", "-server", "-Xms1G", "-Xmx4G", "-cp", "/t-io/target/tio-http-server-benchmark/config:/t-io/target/tio-http-server-benchmark.jar", "org.tio.http.server.benchmark.TioBenchmarkStarter"]
19+
# 将第一阶段 build 中生成的整个目录复制过来,
20+
# 包含:
21+
# - tio-http-server-benchmark.jar
22+
# - config/ (静态配置等)
23+
COPY --from=build /t-io/target/tio-http-server-benchmark/ ./
1424

25+
EXPOSE 8080
1526

27+
# 使用 -cp 指定 JAR 与 config 目录,主类为 TioBenchmarkStarter
28+
CMD ["java", "-server", "-Xms1G", "-Xmx4G", "-cp", "tio-http-server-benchmark.jar:config", "org.tio.http.server.benchmark.TioBenchmarkStarter"]

0 commit comments

Comments
 (0)