@@ -6,12 +6,13 @@ ARG MTA_USER_HOME="/home/${MTA_USER}"
66ARG MBT_VERSION=1.2.21
77ARG GO_VERSION=1.19.3
88ARG NODE_VERSION=NODE_VERSION_TEMPLATE
9- ARG MAVEN_VERSION=3.8.6
9+ ARG MAVEN_VERSION=3.8.7
1010ARG MAVEN_BASE_URL=https://downloads.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries
1111ARG SAPMACHINE_VERSION=JAVA_VERSION_TEMPLATE
1212
1313# Environment variables
1414ENV PYTHON /usr/bin/python3
15+ ENV JAVA_HOME /opt/jdk
1516ENV MAVEN_HOME /usr/share/maven
1617ENV M2_HOME ${MAVEN_HOME}
1718ENV PATH /usr/local/go/bin:$PATH
@@ -72,12 +73,12 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
7273 gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
7374 gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys "$key" ; \
7475 done \
75- && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
76- && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
76+ && curl -fsSLO --compressed "https://nodejs.org/dist/v${ NODE_VERSION} /node-v${ NODE_VERSION} -linux-${ ARCH} .tar.xz" \
77+ && curl -fsSLO --compressed "https://nodejs.org/dist/v${ NODE_VERSION} /SHASUMS256.txt.asc" \
7778 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
78- && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
79- && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
80- && rm -rf "$GNUPGHOME" "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
79+ && grep " node-v${ NODE_VERSION} -linux-${ ARCH} .tar.xz\$" SHASUMS256.txt | sha256sum -c - \
80+ && tar -xJf "node-v${ NODE_VERSION} -linux-${ ARCH} .tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
81+ && rm -rf "$GNUPGHOME" "node-v${ NODE_VERSION} -linux-${ ARCH} .tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
8182 && apt-mark auto '.*' > /dev/null \
8283 && find /usr/local -type f -executable -exec ldd '{}' ';' \
8384 | awk '/=>/ { print $(NF-1) }' \
@@ -143,31 +144,59 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
143144 && go version
144145
145146# Install SAPMachine
146- RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
147- && case "${dpkgArch##*-}" in \
147+ RUN sapmachine_install() { \
148+ SAPMACHINE_MAJOR_VERSION=$(echo ${SAPMACHINE_VERSION} | cut -d. -f1); \
149+ ARCH=; \
150+ dpkgArch="$(dpkg --print-architecture)"; \
151+ case "${dpkgArch##*-}" in \
148152 amd64) ARCH='amd64';; \
149153 *) echo "unsupported architecture"; exit 1 ;; \
150- esac \
154+ esac; \
155+ apt-get update; \
156+ apt-get install -y ca-certificates gnupg dirmngr --no-install-recommends; \
157+ rm -rf /var/lib/apt/lists/*; \
158+ export GNUPGHOME="$(mktemp -d)"; \
159+ for key in \
160+ CACB9FE09150307D1D22D82962754C3B3ABCFE23 \
161+ ; do \
162+ gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/sapmachine.gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
163+ gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/sapmachine.gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys "$key" ; \
164+ done; \
165+ chmod 644 /etc/apt/trusted.gpg.d/sapmachine.gpg; \
166+ echo "deb http://dist.sapmachine.io/debian/${ARCH}/ ./" | tee /etc/apt/sources.list.d/sapmachine.list; \
167+ apt-get update; \
168+ apt-get install -y sapmachine-${SAPMACHINE_MAJOR_VERSION}-jdk=${SAPMACHINE_VERSION} --no-install-recommends; \
169+ rm -rf "$GNUPGHOME" /var/lib/apt/lists/*; \
170+ apt-get remove --purge --autoremove -y ca-certificates gnupg dirmngr; \
171+ ln -s /usr/lib/jvm/sapmachine-${SAPMACHINE_MAJOR_VERSION} ${JAVA_HOME}; \
172+ }; \
173+ sapjvm_install() { \
174+ ARCH=; \
175+ dpkgArch="$(dpkg --print-architecture)"; \
176+ case "${dpkgArch##*-}" in \
177+ amd64) ARCH='x64';; \
178+ ppc64el) ARCH='ppc64le';; \
179+ *) echo "unsupported architecture"; exit 1 ;; \
180+ esac; \
181+ apt-get update; \
182+ apt-get install -y ca-certificates curl libarchive-tools --no-install-recommends; \
183+ rm -rf /var/lib/apt/lists/*; \
184+ curl -fsSLO --compressed -b 'eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt' https://tools.hana.ondemand.com/additional/sapjvm-${SAPMACHINE_VERSION}-linux-${ARCH}.zip; \
185+ echo "583dedfeee0c119839a610ddc8c6768d0c044429 sapjvm-${SAPMACHINE_VERSION}-linux-${ARCH}.zip" | sha1sum -c -; \
186+ bsdtar -xvf sapjvm-${SAPMACHINE_VERSION}-linux-${ARCH}.zip -C /usr/local --strip-components=1 --no-same-owner; \
187+ rm -f sapjvm-${SAPMACHINE_VERSION}-linux-${ARCH}.zip; \
188+ apt-get remove --purge --auto-remove -y ca-certificates curl libarchive-tools; \
189+ ln -s /usr/local ${JAVA_HOME}; \
190+ } \
151191 && set -ex \
152- && apt-get update \
153- && apt-get install -y ca-certificates gnupg dirmngr --no-install-recommends \
154- && rm -rf /var/lib/apt/lists/* \
155- && export GNUPGHOME="$(mktemp -d)" \
156- && for key in \
157- CACB9FE09150307D1D22D82962754C3B3ABCFE23 \
158- ; do \
159- gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/sapmachine.gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
160- gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/sapmachine.gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys "$key" ; \
161- done \
162- && chmod 644 /etc/apt/trusted.gpg.d/sapmachine.gpg \
163- && echo "deb http://dist.sapmachine.io/debian/${ARCH}/ ./" | tee /etc/apt/sources.list.d/sapmachine.list \
164- && apt-get update \
165- && apt-get install -y sapmachine-$(echo ${SAPMACHINE_VERSION} | cut -d. -f1)-jdk=${SAPMACHINE_VERSION} --no-install-recommends \
166- && rm -rf "$GNUPGHOME" /var/lib/apt/lists/* \
167- && apt-get remove --purge --autoremove -y ca-certificates gnupg dirmngr \
192+ && if [ $(echo ${SAPMACHINE_VERSION} | cut -d. -f1) -le 8 ]; then \
193+ sapjvm_install; \
194+ else \
195+ sapmachine_install; \
196+ fi \
168197 # smoke test
169198 && echo "SAPMachine ${SAPMACHINE_VERSION} install smoke test!" \
170- && java -- version
199+ && java -version
171200
172201# Install Maven
173202RUN set -ex \
@@ -212,6 +241,13 @@ RUN set -ex \
212241 && python2.7 --version \
213242 && python3 --version
214243
215- ENV PATH=$PATH:./node_modules/.bin HOME=${MTA_USER_HOME}
244+ # Allow global npm packages install without sudo
245+ RUN set -ex \
246+ && mkdir ${MTA_USER_HOME}/.npm-global \
247+ && mkdir ${MTA_USER_HOME}/.npm-global/lib \
248+ && chown -R ${MTA_USER}:${MTA_USER} ${MTA_USER_HOME}
249+ ENV NPM_CONFIG_PREFIX ${MTA_USER_HOME}/.npm-global
250+
251+ ENV PATH=$PATH:./node_modules/.bin:${MTA_USER_HOME}/.npm-global/bin
216252WORKDIR /project
217253USER ${MTA_USER}
0 commit comments