@@ -54,13 +54,16 @@ rm -r /stackable/trino-server-${PRODUCT}-src/plugin/*/target /stackable/trino-se
5454# while the raw output folder does not
5555tar -xzf /stackable/trino-server-${PRODUCT}-src/core/trino-server/target/trino-server-${PRODUCT}.tar.gz -C /stackable
5656mv /stackable/trino-server-${PRODUCT}-src/core/trino-server/target/bom.json /stackable/trino-server-${PRODUCT}/trino-server-${PRODUCT}.cdx.json
57- chown --recursive ${STACKABLE_USER_UID}:0 /stackable/trino-server-${PRODUCT}
5857
5958# Delete all intermediate build products to free some more space
6059rm -r /stackable/trino-server-${PRODUCT}-src
60+
61+ # We need to change group and not in the final image (file changes bloat images)
62+ chmod -R g=u /stackable
6163EOF
6264
6365COPY --from=trino-storage-connector-image /stackable/trino-storage-${PRODUCT}-src/target/trino-storage-${PRODUCT} /stackable/trino-server-${PRODUCT}/plugin/trino-storage-${PRODUCT}
66+ RUN chmod -R g=u /stackable/trino-server-${PRODUCT}/plugin/trino-storage-${PRODUCT}
6467# For earlier versions this script removes the .class file that contains the
6568# vulnerable code.
6669# TODO: This can be restricted to target only versions which do not honor the environment
@@ -86,12 +89,12 @@ ARG RELEASE
8689ARG STACKABLE_USER_UID
8790
8891LABEL name="Trino" \
89- 90- vendor="Stackable GmbH" \
91- version="${PRODUCT}" \
92- release="${RELEASE}" \
93- summary="The Stackable image for Trino." \
94- description="This image is deployed by the Stackable Operator for Trino."
92+ 93+ vendor="Stackable GmbH" \
94+ version="${PRODUCT}" \
95+ release="${RELEASE}" \
96+ summary="The Stackable image for Trino." \
97+ description="This image is deployed by the Stackable Operator for Trino."
9598
9699RUN microdnf update && \
97100 microdnf install \
@@ -108,19 +111,16 @@ WORKDIR /stackable
108111COPY --chown=${STACKABLE_USER_UID}:0 trino/stackable /stackable
109112COPY --chown=${STACKABLE_USER_UID}:0 trino/licenses /licenses
110113
111- COPY --from=trino-builder /stackable/trino-server-${PRODUCT} /stackable/trino-server-${PRODUCT}
114+ COPY --from=trino-builder --chown=${STACKABLE_USER_UID}:0 /stackable/trino-server-${PRODUCT} /stackable/trino-server-${PRODUCT}
112115
113116RUN <<EOF
114117ln -s /stackable/trino-server-${PRODUCT} /stackable/trino-server
115118
116119curl --fail https://repo.stackable.tech/repository/packages/jmx-exporter/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar -o /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar
117120chmod +x /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar
121+ chmod g=u /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar
122+ chown ${STACKABLE_USER_UID}:0 /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar
118123ln -s /stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar /stackable/jmx/jmx_prometheus_javaagent.jar
119-
120- # All files and folders owned by root group to support running as arbitrary users.
121- # This is best practice as all container users will belong to the root group (0).
122- chown -R ${STACKABLE_USER_UID}:0 /stackable
123- chmod -R g=u /stackable
124124EOF
125125
126126# ----------------------------------------
0 commit comments