- Dockerfile: multi-stage build with $BUILDPLATFORM for native Maven builds on ARM64 runners, amd64 runtime target. Passes REGISTRY_TOKEN build arg for cameleer3-common dependency resolution. - K8s manifests: ClickHouse StatefulSet with init scripts ConfigMap, server Deployment + NodePort (30081) - CI: docker job (QEMU + buildx cross-compile, registry cache, provenance=false, old image cleanup) + deploy job (kubectl) - .dockerignore for build context optimization Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27 lines
976 B
Docker
27 lines
976 B
Docker
FROM --platform=$BUILDPLATFORM maven:3.9-eclipse-temurin-17 AS build
|
|
WORKDIR /build
|
|
|
|
# Configure Gitea Maven Registry for cameleer3-common dependency
|
|
ARG REGISTRY_TOKEN
|
|
RUN mkdir -p ~/.m2 && \
|
|
echo '<settings><servers><server><id>gitea</id><username>cameleer</username><password>'${REGISTRY_TOKEN}'</password></server></servers></settings>' > ~/.m2/settings.xml
|
|
|
|
COPY pom.xml .
|
|
COPY cameleer3-server-core/pom.xml cameleer3-server-core/
|
|
COPY cameleer3-server-app/pom.xml cameleer3-server-app/
|
|
# Cache deps — only re-downloaded when POMs change
|
|
RUN mvn dependency:go-offline -B || true
|
|
COPY . .
|
|
RUN mvn clean package -DskipTests -B
|
|
|
|
FROM eclipse-temurin:17-jre
|
|
WORKDIR /app
|
|
COPY --from=build /build/cameleer3-server-app/target/cameleer3-server-app-*.jar /app/server.jar
|
|
|
|
ENV SPRING_DATASOURCE_URL=jdbc:ch://clickhouse:8123/cameleer3
|
|
ENV SPRING_DATASOURCE_USERNAME=cameleer
|
|
ENV SPRING_DATASOURCE_PASSWORD=cameleer_dev
|
|
|
|
EXPOSE 8081
|
|
ENTRYPOINT exec java -jar /app/server.jar
|