build: add repo-owned service image build entrypoints

This commit is contained in:
hy001 2026-04-20 15:49:41 +08:00
parent 621b15079e
commit fe434bdbd6
10 changed files with 395 additions and 276 deletions

73
ci/build-service-image.sh Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
SERVICE_NAME="${1:-}"
IMAGE_REF="${2:-}"
SERVICE_VERSION="${SERVICE_VERSION:-${3:-dev}}"
MAVEN_REPO_LOCAL="${MAVEN_REPO_LOCAL:-${HOME}/.m2/repository}"
DOCKER_PLATFORM="${DOCKER_PLATFORM:-linux/amd64}"
SKIP_MAVEN_BUILD="${SKIP_MAVEN_BUILD:-0}"
if [ -z "${SERVICE_NAME}" ] || [ -z "${IMAGE_REF}" ]; then
echo "usage: ci/build-service-image.sh <service> <image-ref> [service-version]" >&2
exit 1
fi
case "${SERVICE_NAME}" in
auth)
MODULE_PATH="rc-auth"
DOCKER_CONTEXT="rc-auth"
;;
gateway)
MODULE_PATH="rc-gateway"
DOCKER_CONTEXT="rc-gateway"
;;
external)
MODULE_PATH="rc-service/rc-service-external/external-start"
DOCKER_CONTEXT="rc-service/rc-service-external"
;;
console)
MODULE_PATH="rc-service/rc-service-console/console-start"
DOCKER_CONTEXT="rc-service/rc-service-console"
;;
other)
MODULE_PATH="rc-service/rc-service-other/other-start"
DOCKER_CONTEXT="rc-service/rc-service-other"
;;
live)
MODULE_PATH="rc-service/rc-service-live/live-start"
DOCKER_CONTEXT="rc-service/rc-service-live"
;;
wallet)
MODULE_PATH="rc-service/rc-service-wallet/wallet-start"
DOCKER_CONTEXT="rc-service/rc-service-wallet"
;;
order)
MODULE_PATH="rc-service/rc-service-order/order-start"
DOCKER_CONTEXT="rc-service/rc-service-order"
;;
*)
echo "unsupported service: ${SERVICE_NAME}" >&2
exit 1
;;
esac
cd "${ROOT_DIR}"
if [ "${SKIP_MAVEN_BUILD}" != "1" ]; then
"${ROOT_DIR}/ci/install-private-maven.sh"
mvn -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \
-pl "${MODULE_PATH}" \
-am \
-Dmaven.test.skip=true \
clean package
fi
docker build \
--platform "${DOCKER_PLATFORM}" \
-f "${DOCKER_CONTEXT}/Dockerfile" \
--build-arg "SERVICE_VERSION=${SERVICE_VERSION}" \
-t "${IMAGE_REF}" \
"${DOCKER_CONTEXT}"

34
ci/install-private-maven.sh Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
MAVEN_REPO_LOCAL="${MAVEN_REPO_LOCAL:-${HOME}/.m2/repository}"
PRIVATE_ROOT="${ROOT_DIR}/maven_private"
if [ ! -d "${PRIVATE_ROOT}" ]; then
echo "missing private maven directory: ${PRIVATE_ROOT}" >&2
exit 1
fi
find "${PRIVATE_ROOT}" -mindepth 2 -maxdepth 2 -type d | sort | while read -r version_dir; do
pom_file="$(find "${version_dir}" -maxdepth 1 -type f -name '*.pom' | sort | head -1)"
if [ -z "${pom_file}" ]; then
continue
fi
jar_file="$(find "${version_dir}" -maxdepth 1 -type f -name '*.jar' ! -name 'original-*' | sort | head -1 || true)"
if [ -n "${jar_file}" ]; then
mvn -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \
install:install-file \
-DpomFile="${pom_file}" \
-Dfile="${jar_file}" \
-DgeneratePom=false
else
mvn -Dmaven.repo.local="${MAVEN_REPO_LOCAL}" \
install:install-file \
-DpomFile="${pom_file}" \
-Dfile="${pom_file}" \
-Dpackaging=pom \
-DgeneratePom=false
fi
done

View File

@ -1,17 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-auth" ENV RC_SERVICE_NAME="rc-auth"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY target/rc-auth-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY target/rc-auth-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,19 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME="rc-gateway"
ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ARG SERVICE_VERSION="v1" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV RC_SERVICE_NAME "rc-gateway"
ENV RC_SERVICE_VERSION $SERVICE_VERSION
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
RUN apt-get update \
&& apt-get install -y --no-install-recommends wget ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /application WORKDIR /application
WORKDIR application COPY target/rc-gateway-*.jar /application/service.jar
COPY target/rc-gateway-*.jar service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,18 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
MAINTAINER pengliang
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-service-console" ENV RC_SERVICE_NAME="rc-service-console"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY console-start/target/rc-service-console-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY console-start/target/rc-service-console-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \
@ -33,4 +34,3 @@ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-jar /application/service.jar \ -jar /application/service.jar \
--server.port=$SERVER_PORT \ --server.port=$SERVER_PORT \
--spring.profiles.active=$SERVER_PROFILE_ACTIVE --spring.profiles.active=$SERVER_PROFILE_ACTIVE

View File

@ -1,18 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME="rc-service-external"
ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ARG SERVICE_VERSION="v1" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV RC_SERVICE_NAME "rc-service-external"
ENV RC_SERVICE_VERSION $SERVICE_VERSION
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY external-start/target/rc-service-external-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY external-start/target/rc-service-external-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,17 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-service-live" ENV RC_SERVICE_NAME="rc-service-live"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY live-start/target/rc-service-live-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY live-start/target/rc-service-live-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,17 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-service-order" ENV RC_SERVICE_NAME="rc-service-order"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY order-start/target/rc-service-order-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY order-start/target/rc-service-order-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,16 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-service-other" ENV RC_SERVICE_NAME="rc-service-other"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
RUN mkdir -p /application /logs RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY other-start/target/rc-service-other-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY other-start/target/rc-service-other-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \

View File

@ -1,17 +1,19 @@
#FROM openjdk:17 FROM eclipse-temurin:17-jre-jammy
FROM 989328288674.dkr.ecr.ap-southeast-1.amazonaws.com/likei-dev:amazoncorretto-17
ARG SERVICE_VERSION="v1" ARG SERVICE_VERSION="dev"
ENV RC_SERVICE_NAME "rc-service-wallet" ENV RC_SERVICE_NAME="rc-service-wallet"
ENV RC_SERVICE_VERSION $SERVICE_VERSION ENV RC_SERVICE_VERSION="${SERVICE_VERSION}"
ENV SERVER_PORT="9000" ENV SERVER_PORT="9000"
ENV SERVER_PROFILE_ACTIVE "prod" ENV SERVER_PROFILE_ACTIVE="prod"
ENV JVM_OPTION "-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0" ENV JVM_OPTION="-XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0"
RUN mkdir -p /application RUN apt-get update \
WORKDIR application && apt-get install -y --no-install-recommends wget ca-certificates \
COPY wallet-start/target/rc-service-wallet-*.jar service.jar && rm -rf /var/lib/apt/lists/*
WORKDIR /application
COPY wallet-start/target/rc-service-wallet-*.jar /application/service.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \ ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom \
-Dnacos.remote.client.grpc.timeout=6000 \ -Dnacos.remote.client.grpc.timeout=6000 \