@@ -26,7 +26,7 @@ COPY hbase/licenses /licenses
2626USER ${STACKABLE_USER_UID}
2727WORKDIR /stackable
2828
29- COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches /stackable/patches
29+ COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/${PRODUCT} /stackable/src/hbase/stackable/ patches/${PRODUCT}
3030COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/jmx/config${JMX_EXPORTER} /stackable/jmx
3131
3232# Cache mounts are owned by root by default
@@ -44,13 +44,7 @@ RUN --mount=type=cache,id=maven-hbase-${PRODUCT},uid=${STACKABLE_USER_UID},targe
4444# ##
4545# ## HBase
4646# ##
47- curl "https://repo.stackable.tech/repository/packages/hbase/hbase-${PRODUCT}-src.tar.gz" | tar -xzC .
48- mv hbase-${PRODUCT} hbase-${PRODUCT}-src
49-
50- chmod +x patches/apply_patches.sh
51- patches/apply_patches.sh ${PRODUCT}
52-
53- cd /stackable/hbase-${PRODUCT}-src/
47+ cd "$(/stackable/patchable --images-repo-root=src checkout hbase ${PRODUCT})" && \
5448
5549# The release scripts of HBase also run the build twice (three times in fact, once again to build the site which we skip here).
5650# I chose to replicate that exact behavior for consistency so please don't merge the two mvn runs into one unless you really know what you're doing!
@@ -139,8 +133,7 @@ ARG DELETE_CACHES="true"
139133# so that they are not expanded. Disabling ShellCheck rules in a Dockerfile
140134# does not work, so please ignore the according warning (SC2016).
141135COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/bin/hbck2.env /stackable/bin/
142- COPY --chown=${STACKABLE_USER_UID}:0 hbase/hbase-operator-tools/stackable/patches /stackable/patches
143- COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/apply_patches.sh /stackable/patches
136+ COPY --chown=${STACKABLE_USER_UID}:0 hbase/hbase-operator-tools/stackable/patches/${HBASE_OPERATOR_TOOLS} /stackable/src/hbase-operator-tools/stackable/patches/${HBASE_OPERATOR_TOOLS}
144137COPY --chown=${STACKABLE_USER_UID}:0 --chmod=755 hbase/stackable/bin/hbase-entrypoint.sh /stackable/bin/
145138
146139USER ${STACKABLE_USER_UID}
@@ -149,30 +142,33 @@ WORKDIR /stackable
149142# Cache mounts are owned by root by default
150143# We need to explicitly give the uid to use
151144RUN --mount=type=cache,id=maven-hbase-operator-tools-${HBASE_OPERATOR_TOOLS},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
152-
153- curl "https://repo.stackable.tech/repository/packages/hbase-operator-tools/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src.tar.gz" | tar -xzC .
154- mv hbase-operator-tools-${HBASE_OPERATOR_TOOLS} hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
155- chmod +x patches/apply_patches.sh
156- patches/apply_patches.sh ${HBASE_OPERATOR_TOOLS} hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
145+ cd "$(/stackable/patchable --images-repo-root=src checkout hbase-operator-tools ${HBASE_OPERATOR_TOOLS})"
146+ cd hbase-hbck2
147+ git init
148+ git config user.email
"[email protected] " 149+ git config user.name "Fake commiter"
150+ git commit --allow-empty --message "Fake commit, so that we can create a tag"
151+ git tag ${HBASE_OPERATOR_TOOLS}
152+ cd ..
157153
158154mvn \
159155 --batch-mode \
160156 --no-transfer-progress \
161157 -Dhbase.version=${PRODUCT} \
162158 -Dhbase-thirdparty.version=${HBASE_THIRDPARTY} \
163159 -DskipTests \
164- -fhbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src \
165160 package assembly:single
166161
167162# We need the "*" here as the directory won't be the same as the final tar file for SNAPSHOTs which we currently have to use for 2.6
168163# And we're stripping the top level directory while extracting because it may be called different than the folder name when it's a SNAPSHOT
169164mkdir /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}
170165tar -xz \
171- -f hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src/hbase-operator-tools- assembly/target/hbase-operator-tools-*-bin.tar.gz \
166+ -f hbase-operator-tools-assembly/target/hbase-operator-tools-*-bin.tar.gz \
172167 -C /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/ \
173168 --strip-components=1
174- mv hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src/hbase-operator-tools-assembly/target/bom.json /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}.cdx.json
175- rm -rf /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
169+ mv hbase-operator-tools-assembly/target/bom.json /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}.cdx.json
170+ cd ..
171+ rm -r ./${HBASE_OPERATOR_TOOLS}
176172
177173envsubst '${PRODUCT}:${HBASE_OPERATOR_TOOLS}' < /stackable/bin/hbck2.env > /stackable/bin/hbck2
178174chmod +x /stackable/bin/hbck2
@@ -233,20 +229,13 @@ ARG STACKABLE_USER_UID
233229# This can be used to speed up builds when disk space is of no concern.
234230ARG DELETE_CACHES="true"
235231
236- COPY --chown=${STACKABLE_USER_UID}:0 hbase/phoenix/stackable/patches /stackable/patches
237- COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/apply_patches.sh /stackable/patches
232+ COPY --chown=${STACKABLE_USER_UID}:0 hbase/phoenix/stackable/patches/${PHOENIX} /stackable/src/phoenix/stackable/patches/${PHOENIX}
238233USER ${STACKABLE_USER_UID}
239234WORKDIR /stackable
240235
241236RUN --mount=type=cache,id=maven-phoenix-${PHOENIX},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
242- cd /stackable
243- curl "https://repo.stackable.tech/repository/packages/phoenix/phoenix-${PHOENIX}-src.tar.gz" | tar -xzC .
244- mv phoenix-${PHOENIX} phoenix-${PHOENIX}-src
245-
246- chmod +x patches/apply_patches.sh
247- patches/apply_patches.sh ${PHOENIX} phoenix-${PHOENIX}-src
237+ cd "$(/stackable/patchable --images-repo-root=src checkout phoenix ${PHOENIX})" && \
248238
249- # Passing "-f" means it'll build in the phoenix source directory without cding into it
250239# The Maven command can be found inside of the scripts in the create-release folder (release-util.sh as of Phoenix 5.2.0)
251240# https://github.com/apache/phoenix/tree/5.2.0/dev/create-release
252241mvn \
@@ -257,15 +246,14 @@ mvn \
257246 -Dhadoop.version=${HADOOP} \
258247 -DskipTests \
259248 -Dcheckstyle.skip=true \
260- -fphoenix-${PHOENIX}-src \
261249 clean \
262250 package
263251
264252# We need the "*" here as the directory won't be the same as the final tar file for SNAPSHOTs which we currently have to use for 2.6
265253# And we're stripping the top level directory while extracting because it may be called different than the folder name when it's a SNAPSHOT
266254mkdir /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin
267- tar -xz -f phoenix-${PHOENIX}-src/phoenix- assembly/target/phoenix-hbase-*-bin.tar.gz -C /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/ --strip-components=1
268- mv phoenix-${PHOENIX}-src/phoenix- assembly/target/bom.json /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/phoenix-${HBASE_PROFILE}-${PHOENIX}.cdx.json
255+ tar -xz -f phoenix-assembly/target/phoenix-hbase-*-bin.tar.gz -C /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/ --strip-components=1
256+ mv phoenix-assembly/target/bom.json /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/phoenix-${HBASE_PROFILE}-${PHOENIX}.cdx.json
269257rm -rf /stackable/phoenix-${PHOENIX}-src
270258ln -s "/stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin" /stackable/phoenix
271259
0 commit comments