feat(build): add Dockerfile

This commit is contained in:
suyiiyii 2024-08-25 01:41:03 +08:00
parent c00d979e91
commit d5702124d3
2 changed files with 53 additions and 0 deletions

49
Dockerfile Normal file
View File

@ -0,0 +1,49 @@
FROM maven:3.9-eclipse-temurin-17-alpine AS build
WORKDIR /app
# 给 maven 配置阿里云镜像
RUN --mount=type=cache,target=/root/.m2 \
mkdir -p /root/.m2 \
&& echo "<settings>\
<mirrors>\
<mirror>\
<id>gdutnic</id>\
<name>gdutnic maven</name>\
<url>http://mirrors.gdut.edu.cn/nexus/repository/maven-public/</url>\
<mirrorOf>central</mirrorOf>\
</mirror>\
<mirror>\
<id>alimaven</id>\
<mirrorOf>central</mirrorOf>\
<name>aliyun maven</name>\
<url>https://maven.aliyun.com/repository/public</url>\
</mirror>\
</mirrors>\
</settings>" > /root/.m2/settings.xml
COPY pom.xml ./pom.xml
COPY src ./src
RUN --mount=type=cache,target=/root/.m2 \
mvn package -am -DskipTests
RUN mkdir -p /layers && \
cp /app/target/SIMS-0.0.1-SNAPSHOT.jar /layers/target.jar && \
cd /layers && \
java -Djarmode=layertools -jar /layers/target.jar extract
FROM eclipse-temurin:17-jre AS runtime
WORKDIR /app
COPY --from=build /layers/dependencies/ .
COPY --from=build /layers/snapshot-dependencies/ .
COPY --from=build /layers/spring-boot-loader/ .
COPY --from=build /layers/application/ .
EXPOSE 8080
# 执行命令
ENTRYPOINT [ "java", "org.springframework.boot.loader.JarLauncher" ]

View File

@ -144,6 +144,10 @@
<artifactId>lombok</artifactId>
</exclude>
</excludes>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
</plugin>
</plugins>