🐳 修改 docker 构建逻辑.

This commit is contained in:
lijiahangmax
2025-07-05 01:13:28 +08:00
16 changed files with 275 additions and 98 deletions

View File

@@ -1,20 +1,42 @@
FROM openjdk:8-jdk-alpine
# 构建应用
FROM --platform=$BUILDPLATFORM maven:3.9.10-eclipse-temurin-8-alpine AS builder
# 设置阿里云镜像加速
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 拷贝 settings.xml
COPY ./docker/service/settings.xml /root/.m2/
# 复制 POM 文件先进行依赖下载 (利用 Docker 缓存)
WORKDIR /build
COPY pom.xml .
RUN mvn dependency:resolve
# 构建
COPY . .
RUN mvn clean package -DskipTests
FROM --platform=$BUILDPLATFORM openjdk:8-jdk-alpine
USER root
WORKDIR /app
# 系统时区
ARG TZ=Asia/Shanghai
# 添加包
# 添加包 & 设置时区
RUN \
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
apk update && \
apk add curl && \
apk add udev && \
apk add tzdata && \
apk add dmidecode
# 设置时区
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
echo '${TZ}' > /etc/timezone
# 复制包
COPY ./orion-visor-launch.jar /app/app.jar
ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
echo "${TZ}" > /etc/timezone
# 从构建阶段复制 jar 包
COPY --from=builder /build/orion-visor-launch/target/orion-visor-launch.jar /app/app.jar
# 启动
CMD ["java", "-jar", "/app/app.jar"]

View File

@@ -1,8 +0,0 @@
#!/bin/bash
set -e
version=2.4.1
mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar
docker build -t orion-visor-service:${version} .
rm -rf ./orion-visor-launch.jar
docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:${version}
docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:latest

View File

@@ -0,0 +1,43 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>repos</id>
<repositories>
<!-- 阿里云 Maven 公共仓库 -->
<repository>
<id>aliyun</id>
<name>Aliyun Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<!-- Maven 中央仓库 -->
<repository>
<id>central</id>
<name>Maven Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<!-- 激活 profile -->
<activeProfiles>
<activeProfile>repos</activeProfile>
</activeProfiles>
</settings>