build: add repo-owned service image build entrypoints
This commit is contained in:
parent
621b15079e
commit
fe434bdbd6
73
ci/build-service-image.sh
Executable file
73
ci/build-service-image.sh
Executable 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
34
ci/install-private-maven.sh
Executable 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
|
||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user