1- ARG  PRODUCT
2- 
3- 
4- FROM  opensearchproject/opensearch:${PRODUCT} AS source
5- 
61
7- FROM  stackable/image/java-devel AS builder
2+ FROM  stackable/image/opensearch/security-plugin AS opensearch-security-plugin
3+ FROM  stackable/image/java-devel AS opensearch-builder
84
95ARG  PRODUCT
6+ ARG  RELEASE
7+ ARG  OPENSEARCH_SECURITY_PLUGIN
108ARG  STACKABLE_USER_UID
119
12- RUN  <<EOF
13- microdnf update
10+ WORKDIR  /stackable
1411
15- #  patch: Required for the apply-patches.sh script
16- microdnf install patch
12+ COPY  --chown=${STACKABLE_USER_UID}:0 opensearch/stackable/patches/patchable.toml /stackable/src/opensearch/stackable/patches/patchable.toml
13+ COPY  --chown=${STACKABLE_USER_UID}:0 opensearch/stackable/patches/${PRODUCT} /stackable/src/opensearch/stackable/patches/${PRODUCT}
14+ COPY  --chown=${STACKABLE_USER_UID}:0 --from=opensearch-security-plugin /stackable/src/opensearch/security-plugin/patchable-work/worktree/${OPENSEARCH_SECURITY_PLUGIN}/build/distributions/opensearch-security-${OPENSEARCH_SECURITY_PLUGIN}-SNAPSHOT.zip /stackable/opensearch-security-plugin/opensearch-security-${OPENSEARCH_SECURITY_PLUGIN}-SNAPSHOT.zip
1715
16+ RUN  <<EOF
17+ microdnf update
18+ microdnf install unzip
1819microdnf clean all
1920rm -rf /var/cache/yum
2021EOF
2122
22- USER  ${STACKABLE_USER_UID}:0
23- WORKDIR  /stackable
23+ USER  ${STACKABLE_USER_UID}
2424
25- COPY  \
26-     --chown=${STACKABLE_USER_UID}:0 \
27-     --from=source \
28-     /usr/share/opensearch \
29-     opensearch
30- COPY  \
31-     --chown=${STACKABLE_USER_UID}:0 \
32-     opensearch/stackable/patches/apply_patches.sh \
33-     opensearch/patches/apply_patches.sh
34- COPY  \
35-     --chown=${STACKABLE_USER_UID}:0 \
36-     opensearch/stackable/patches/${PRODUCT} \
37-     opensearch/patches/${PRODUCT}
25+ RUN  <<EOF
26+ cd "$(/stackable/patchable --images-repo-root=src checkout opensearch ${PRODUCT})" 
27+ 
28+ NEW_VERSION="${PRODUCT}-stackable${RELEASE}" 
29+ #  Create snapshot of the source code including custom patches
30+ tar -czf /stackable/opensearch-${NEW_VERSION}-src.tar.gz .
31+ ./gradlew localDistro
32+ cp -r ./distribution/archives/linux-tar/build/install/opensearch-${PRODUCT}-SNAPSHOT /stackable/opensearch
33+ cp ./distribution/docker/src/docker/bin/docker-entrypoint.sh /stackable/opensearch/opensearch-docker-entrypoint.sh
34+ EOF
3835
39- WORKDIR  /stackable/opensearch
36+ WORKDIR  /stackable/opensearch-security-plugin 
4037
4138RUN  <<EOF
42- echo y | bin/opensearch-plugin install repository-s3
39+ unzip opensearch-security-${OPENSEARCH_SECURITY_PLUGIN}-SNAPSHOT.zip
40+ rm -r opensearch-security-${OPENSEARCH_SECURITY_PLUGIN}-SNAPSHOT.zip
41+ mv config /stackable/opensearch/config/opensearch-security
4342EOF
4443
44+ WORKDIR  /stackable/opensearch
45+ 
4546RUN  <<EOF
46- patches/apply_patches.sh ${PRODUCT}
47- rm -r patches
47+ echo y | bin/opensearch-plugin install repository-s3
4848
4949#  The JDK from jdk-base is used instead.
5050rm -r jdk
5151
5252#  Change the group permissions already in the builder image to reduce
5353#  the size of the final image.
5454#  see https://github.com/stackabletech/docker-images/issues/961
55- chmod -R g=u ${HOME}
55+ chmod -R g=u "${HOME}" 
56+ chmod +x /stackable/opensearch/opensearch-docker-entrypoint.sh
5657EOF
5758
5859
@@ -63,6 +64,7 @@ FROM stackable/image/jdk-base
6364
6465ARG  PRODUCT
6566ARG  RELEASE
67+ ARG  OPENSEARCH_SECURITY_PLUGIN
6668ARG  STACKABLE_USER_UID
6769
6870ARG  NAME="OpenSearch" 
@@ -84,9 +86,19 @@ LABEL org.opencontainers.image.description="${DESCRIPTION}"
8486
8587COPY  \
8688    --chown=${STACKABLE_USER_UID}:0 \
87-     --from=builder \
89+     --from=opensearch- builder \
8890    /stackable/opensearch \
8991    ${OPENSEARCH_HOME}
92+ COPY  \
93+     --chown=${STACKABLE_USER_UID}:0 \
94+     --from=opensearch-builder \
95+     /stackable/opensearch-security-plugin \
96+     ${OPENSEARCH_HOME}/plugins/opensearch-security
97+ COPY  \
98+     --chown=${STACKABLE_USER_UID}:0 \
99+     --from=opensearch-security-plugin \
100+     /stackable/opensearch-security-plugin-${OPENSEARCH_SECURITY_PLUGIN}-src.tar.gz \
101+     /stackable
90102
91103RUN  <<EOF
92104microdnf update
@@ -103,6 +115,7 @@ USER ${STACKABLE_USER_UID}
103115ENV  HOME=${HOME}
104116ENV  OPENSEARCH_HOME=${OPENSEARCH_HOME}
105117ENV  PATH="${PATH}:/${OPENSEARCH_HOME}:${OPENSEARCH_HOME}/bin" 
118+ ENV  OPENSEARCH_CONTAINER=true
106119
107120WORKDIR  ${OPENSEARCH_HOME}
108121CMD  ["./opensearch-docker-entrypoint.sh" ]
0 commit comments