From d9f41b749aa69f25ad382a2b79fc993bb44b499c Mon Sep 17 00:00:00 2001 From: KirillKurdyukov Date: Thu, 18 Jun 2026 09:44:36 +0300 Subject: [PATCH] Add shared SDK SLO Dockerfile for all workload modules. Single image build installs ydb-java-sdk from source, pins ydb.sdk.version and packages the selected slo-workload module for java-sdk CI matrix. Co-authored-by: Cursor --- slo-workload/docker/Dockerfile.sdk | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 slo-workload/docker/Dockerfile.sdk diff --git a/slo-workload/docker/Dockerfile.sdk b/slo-workload/docker/Dockerfile.sdk new file mode 100644 index 0000000..69cbf01 --- /dev/null +++ b/slo-workload/docker/Dockerfile.sdk @@ -0,0 +1,53 @@ +ARG MAVEN_IMAGE=maven:3.9-eclipse-temurin-17 +ARG RUNTIME_IMAGE=eclipse-temurin:17-jre +ARG WORKLOAD_MODULE=slo-workload/query +ARG WORKLOAD_JAR=ydb-slo-query-workload.jar +ARG COPY_LIBS=true + +FROM ${MAVEN_IMAGE} AS workload-build + +WORKDIR /src + +COPY ydb-java-sdk /src/ydb-java-sdk + +RUN cd /src/ydb-java-sdk && \ + mvn -B -q \ + -DskipTests \ + -Dmaven.javadoc.skip=true \ + -Dmaven.source.skip=true \ + -Dgpg.skip=true \ + install && \ + mvn -B -q help:evaluate -Dexpression=project.version -DforceStdout > /tmp/sdk.version + +COPY ydb-java-examples /src/ydb-java-examples + +RUN SDK_VERSION="$(cat /tmp/sdk.version)" && \ + cd /src/ydb-java-examples && \ + mvn -B -q versions:set-property \ + -Dproperty=ydb.sdk.version \ + -DnewVersion="${SDK_VERSION}" \ + -DgenerateBackupPoms=false && \ + mvn -B -q \ + -pl "${WORKLOAD_MODULE}" -am \ + -DskipTests \ + -Dmaven.javadoc.skip=true \ + package + +FROM ${MAVEN_IMAGE} AS export +ARG WORKLOAD_MODULE +ARG WORKLOAD_JAR +ARG COPY_LIBS +RUN mkdir -p /export/libs && \ + cp "/src/ydb-java-examples/${WORKLOAD_MODULE}/target/${WORKLOAD_JAR}" /export/workload.jar && \ + if [ "${COPY_LIBS}" = "true" ]; then \ + cp -r "/src/ydb-java-examples/${WORKLOAD_MODULE}/target/libs/." /export/libs/; \ + fi + +FROM ${RUNTIME_IMAGE} + +WORKDIR /app + +COPY --from=export /export/workload.jar /app/workload.jar +COPY --from=export /export/libs /app/libs + +ENTRYPOINT ["java", "-jar", "/app/workload.jar"]