Skip to content

Commit a8fe377

Browse files
authored
Add build for Enterprise Linux 9 (el9) (#108)
Adding a build system for el9, updating existing build plan with tags for el8 and default snapshots etc.
1 parent 13c95ab commit a8fe377

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+5861
-308
lines changed

.travis.yml

Lines changed: 128 additions & 146 deletions
Large diffs are not rendered by default.

build_from_release_recipe.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ woo_get_besd_distro \
3131
true
3232

3333
# Get the OLFS web archive
34-
woo_get_olfs_distro \
35-
`pwd` \
36-
"${OLFS_VERSION}"
34+
curl_get_olfs_distro `pwd` "${OLFS_VERSION}"
3735

3836
ls -l *.rpm *.gz *.tgz
3937

el8-builds/besd/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ LABEL vendor="OPeNDAP Incorporated"
4242
LABEL org.opendap.besdaemon.version=${BES_VERSION}
4343
LABEL org.opendap.besdaemon.release-date=RELEASE_DATE
4444
LABEL org.opendap.hyrax.version.is-production="false"
45-
46-
MAINTAINER support@opendap.org
45+
LABEL org.opencontainers.image.authors="support@opendap.org"
4746

4847
USER root
4948

Lines changed: 71 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ function read_build_recipe() {
3232
export BES_VERSION=""
3333
export BUILD_DMRPP_VERSION=""
3434
export LIBDAP_VERSION=""
35+
export SNAPSHOT_IMAGE_TAG=""
36+
export BUILD_VERSION_TAG=""
37+
export OS_SNAPSHOT_IMAGE_TAG=""
38+
export OS_BUILD_VERSION_TAG=""
39+
3540
RELEASE_DATE=${RELEASE_DATE:-$(echo "${build_recipe}" | grep hyrax | awk '{print $2;}')}
3641
HYRAX_VERSION=${HYRAX_VERSION:-$(echo "${build_recipe}" | grep hyrax | awk '{print $1;}' | sed "s/hyrax-//g" )}
3742
OLFS_VERSION=${OLFS_VERSION:-$(echo "${build_recipe}" | grep olfs | sed "s/olfs-//g" | awk '{print $1;}')}
@@ -54,36 +59,82 @@ function read_build_recipe() {
5459
TEST_DEPLOYMENT="$td_value"
5560
fi
5661
fi
62+
63+
64+
if test "$DOCKER_NAME" == "ngap"
65+
then
66+
###############################################################################################
67+
# For the ngap distribution we make special SNAPSHOT_IMAGE_TAG and BUILD_VERSION_TAG values
68+
# because the ngap product gets tagged differently than the products from our other repos.
69+
# Specifically, we use the opendap/hyrax repo since the ngap product is just a specialization
70+
# of hyrax, at least for now. So we use the opendap/hyrax project identifier, and we add the
71+
# $DOCKER_NAME ("ngap" in this case) to the image tag:
72+
# Examples:
73+
# opendap/hyrax:ngap-snapshot
74+
# opendap/hyrax:ngap-snapshot-el8
75+
# opendap/hyrax:ngap-1.17.1-846
76+
# opendap/hyrax:ngap-1.17.1-846-el8
77+
# opendap/hyrax:ngap-snapshot-el8-test-deploy
78+
# opendap/hyrax:ngap--1.17.1-846-el8-test-deploy
79+
# We set (and replace) these values here, in the stage, so that they can be accessed by the
80+
# travis/deploy_to_docker_hub.sh script used by the Travis deploy operation below.
81+
SNAPSHOT_IMAGE_TAG="${SNAPSHOT_IMAGE_TAG:-"opendap/hyrax:$DOCKER_NAME-snapshot$TEST_DEPLOYMENT"}"
82+
BUILD_VERSION_TAG="${BUILD_VERSION_TAG:-"opendap/hyrax:$DOCKER_NAME-$HYRAX_VERSION$TEST_DEPLOYMENT"}"
83+
84+
OS_SNAPSHOT_IMAGE_TAG="${OS_SNAPSHOT_IMAGE_TAG:-"opendap/hyrax:$DOCKER_NAME-snapshot-$TARGET_OS$TEST_DEPLOYMENT"}"
85+
OS_BUILD_VERSION_TAG="${OS_BUILD_VERSION_TAG:-"opendap/hyrax:$DOCKER_NAME-$HYRAX_VERSION-$TARGET_OS$TEST_DEPLOYMENT"}"
86+
else
87+
###############################################################################################
88+
# This is the nominal tagging scheme
89+
#
90+
91+
SNAPSHOT_IMAGE_TAG="${SNAPSHOT_IMAGE_TAG:-"opendap/$DOCKER_NAME:snapshot$TEST_DEPLOYMENT"}"
92+
BUILD_VERSION_TAG="${BUILD_VERSION_TAG:-"opendap/$DOCKER_NAME:$HYRAX_VERSION$TEST_DEPLOYMENT"}"
93+
94+
OS_SNAPSHOT_IMAGE_TAG="${OS_SNAPSHOT_IMAGE_TAG:-"opendap/$DOCKER_NAME:snapshot-$TARGET_OS$TEST_DEPLOYMENT"}"
95+
OS_BUILD_VERSION_TAG="${OS_BUILD_VERSION_TAG:-"opendap/$DOCKER_NAME:$HYRAX_VERSION-$TARGET_OS$TEST_DEPLOYMENT"}"
96+
fi
97+
5798
}
5899
read_build_recipe "${BUILD_RECIPE_FILE}"
59100

60101

61-
export SNAPSHOT_IMAGE_TAG=${SNAPSHOT_IMAGE_TAG:-"opendap/${DOCKER_NAME}:snapshot"}
62-
export BUILD_VERSION_TAG=${BUILD_VERSION_TAG:-"opendap/${DOCKER_NAME}:${HYRAX_VERSION}"}
102+
103+
104+
105+
63106

64107
export RELEASE_HOST=${RELEASE_HOST:-"https://www.opendap.org"}
65108

66109

67110
function show_version(){
68111
loggy "${HR}"
69-
loggy " RELEASE_DATE: ${RELEASE_DATE}"
70-
loggy " HYRAX_VERSION: ${HYRAX_VERSION}"
71-
loggy " OLFS_VERSION: ${OLFS_VERSION}"
72-
loggy " BES_VERSION: ${BES_VERSION}"
73-
loggy " BUILD_DMRPP_VERSION: ${BUILD_DMRPP_VERSION}"
74-
loggy " LIBDAP_VERSION: ${LIBDAP_VERSION}"
75-
loggy " DOCKER_NAME: ${DOCKER_NAME}"
76-
loggy " BUILD_VERSION_TAG: ${BUILD_VERSION_TAG}"
77-
loggy " SNAPSHOT_IMAGE_TAG: ${SNAPSHOT_IMAGE_TAG}"
78-
loggy " S3_BUILD_BUCKET: ${S3_BUILD_BUCKET}"
79-
loggy " SLEEP_INTERVAL: ${SLEEP_INTERVAL}"
112+
loggy " RELEASE_DATE: ${RELEASE_DATE}"
113+
loggy " TARGET_OS: $TARGET_OS"
114+
loggy " DOCKER_DIR: $DOCKER_DIR"
115+
loggy " DOCKER_NAME: $DOCKER_NAME"
116+
loggy " HYRAX_VERSION: ${HYRAX_VERSION}"
117+
loggy " OLFS_VERSION: ${OLFS_VERSION}"
118+
loggy " BES_VERSION: ${BES_VERSION}"
119+
loggy " BUILD_DMRPP_VERSION: ${BUILD_DMRPP_VERSION}"
120+
loggy " LIBDAP_VERSION: ${LIBDAP_VERSION}"
121+
loggy " DOCKER_NAME: ${DOCKER_NAME}"
122+
loggy ""
123+
loggy " BUILD_VERSION_TAG: '$BUILD_VERSION_TAG'"
124+
loggy " OS_BUILD_VERSION_TAG: '$OS_BUILD_VERSION_TAG'"
125+
loggy ""
126+
loggy " SNAPSHOT_IMAGE_TAG: '$SNAPSHOT_IMAGE_TAG'"
127+
loggy "OS_SNAPSHOT_IMAGE_TAG: '$OS_SNAPSHOT_IMAGE_TAG'"
128+
loggy ""
129+
loggy " S3_BUILD_BUCKET: ${S3_BUILD_BUCKET}"
130+
loggy " SLEEP_INTERVAL: ${SLEEP_INTERVAL}"
80131
loggy ""
81-
loggy "TOMCAT_MAJOR_VERSION: ${TOMCAT_MAJOR_VERSION}"
132+
loggy " TOMCAT_MAJOR_VERSION: ${TOMCAT_MAJOR_VERSION}"
82133
loggy " TOMCAT_VERSION: ${TOMCAT_VERSION}"
83134
loggy ""
84-
loggy " NO_CACHE: ${NO_CACHE}"
135+
loggy " NO_CACHE: ${NO_CACHE}"
85136
loggy ""
86-
loggy " TEST_DEPLOYMENT: '$TEST_DEPLOYMENT'"
137+
loggy " TEST_DEPLOYMENT: '$TEST_DEPLOYMENT'"
87138
loggy ""
88139
}
89140

@@ -615,15 +666,15 @@ function s3_get_build_dmrpp_distro() {
615666

616667
################################################################################
617668
#
618-
# woo_get_olfs_distro() - Get the rpm and war files need for a Hyrax installation
669+
# curl_get_olfs_distro() - Get the rpm and war files need for a Hyrax installation
619670
# from the identified S3 bucket.
620671
# $1 - The AWS S3 bucket from which to pull the Hyrax components
621672
# $2 - The directory into which to place the Hyrax components.
622673
# $3 - The olfs version number ##.##.##-##
623674
#
624-
function woo_get_olfs_distro() {
675+
function curl_get_olfs_distro() {
625676
loggy "${HR}"
626-
loggy "TASK: woo_get_olfs_distro()"
677+
loggy "TASK: curl_get_olfs_distro()"
627678
local target_dir="${1}"
628679
loggy " target_dir: ${target_dir}"
629680
local olfs_version="${2}"
@@ -770,7 +821,7 @@ function build_hyrax_ncwms_docker() {
770821
loggy "build_hyrax_ncwms_docker()"
771822
loggy ""
772823
export DOCKER_NAME="hyrax"
773-
source ./build-rh8
824+
source ./build-el8
774825
export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}_ncwms:rh8-snapshot"
775826
export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}_ncwms:rh8-${HYRAX_VERSION}"
776827
export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")

el8-builds/build-hyrax-ngap.sh

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/bin/bash
2+
#
3+
#
4+
source "./build-$TARGET_OS"
5+
HR0="#######################################################################"
6+
HR1="- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
7+
HR2="--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---"
8+
#############################################################################
9+
# loggy()
10+
prolog="build-hyrax-ngap.sh"
11+
function loggy(){
12+
echo "$@" | awk -v prolog="$prolog" '{ print "# " prolog " - " $0;}' >&2
13+
}
14+
loggy "$HR0"
15+
loggy "BEGIN"
16+
17+
export DOCKER_NAME="${DOCKER_NAME:-"ngap"}"
18+
loggy "DOCKER_NAME: $DOCKER_NAME"
19+
20+
###############################################################################################
21+
#export SNAPSHOT_IMAGE_TAG="${SNAPSHOT_IMAGE_TAG:-"opendap/hyrax:$DOCKER_NAME-snapshot-$TARGET_OS$TEST_DEPLOYMENT"}"
22+
loggy " SNAPSHOT_IMAGE_TAG: '$SNAPSHOT_IMAGE_TAG'" >&2
23+
loggy "OS_SNAPSHOT_IMAGE_TAG: '$OS_SNAPSHOT_IMAGE_TAG'" >&2
24+
#
25+
#export BUILD_VERSION_TAG="${BUILD_VERSION_TAG:-"opendap/hyrax:$DOCKER_NAME-$HYRAX_VERSION-$TARGET_OS$TEST_DEPLOYMENT"}"
26+
loggy " BUILD_VERSION_TAG: '$OS_BUILD_VERSION_TAG'" >&2
27+
loggy " OS_BUILD_VERSION_TAG: '$OS_BUILD_VERSION_TAG'" >&2
28+
###############################################################################################
29+
30+
loggy "TOMCAT_MAJOR_VERSION: $TOMCAT_MAJOR_VERSION" >&2
31+
export TOMCAT_VERSION=
32+
TOMCAT_VERSION="$(get_latest_tomcat_version_number "$TOMCAT_MAJOR_VERSION")"
33+
loggy "TOMCAT_VERSION: $TOMCAT_VERSION" >&2
34+
35+
show_version
36+
37+
get_tomcat_distro "$DOCKER_NAME" "$TOMCAT_VERSION"
38+
39+
s3_get_besd_distro \
40+
"$S3_BUILD_BUCKET" \
41+
"$DOCKER_NAME" \
42+
"$TARGET_OS" \
43+
"$LIBDAP_VERSION" \
44+
"$BES_VERSION" \
45+
"$ADD_DEBUG_RPMS" 2>&1
46+
47+
get_ngap_olfs_distro "$S3_BUILD_BUCKET" "$DOCKER_NAME" "$OLFS_VERSION" 2>&1
48+
49+
docker build \
50+
--build-arg TOMCAT_VERSION \
51+
--build-arg RELEASE_DATE \
52+
--build-arg HYRAX_VERSION \
53+
--build-arg LIBDAP_VERSION \
54+
--build-arg BES_VERSION \
55+
--build-arg OLFS_VERSION \
56+
--tag "$OS_SNAPSHOT_IMAGE_TAG" \
57+
--tag "$OS_BUILD_VERSION_TAG" \
58+
"$DOCKER_NAME"
59+
60+
docker image ls -a
61+
62+
loggy "END"
63+
loggy "$HR0"

el8-builds/ngap/Dockerfile

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -25,74 +25,72 @@ ENV HR2="# -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- -
2525
ENV DEFAULT_NGAP_DEPLOYMENT_CONTEXT="ngap"
2626

2727
ARG DEPLOYMENT_CONTEXT
28-
ENV DEPLOYMENT_CONTEXT ${DEPLOYMENT_CONTEXT:-"ROOT"}
28+
ENV DEPLOYMENT_CONTEXT="${DEPLOYMENT_CONTEXT:-"ROOT"}"
2929
RUN echo "DEPLOYMENT_CONTEXT: ${DEPLOYMENT_CONTEXT}"
3030

31-
RUN export NOW=`date +%s`
32-
3331
#
3432
# Hyrax Components Version Negotiation
3533
#
3634
ARG RELEASE_DATE
37-
ENV RELEASE_DATE ${RELEASE_DATE:-"${NOW}"}
35+
ENV RELEASE_DATE="${RELEASE_DATE:-$(date +%s)}"
3836
RUN echo "RELEASE_DATE: ${RELEASE_DATE}"
3937

4038
ARG TOMCAT_VERSION
41-
ENV TOMCAT_VERSION ${TOMCAT_VERSION:-"9.0.64"}
39+
ENV TOMCAT_VERSION="${TOMCAT_VERSION:-"9.0.64"}"
4240
RUN echo "TOMCAT_VERSION: ${TOMCAT_VERSION}"
43-
ENV TOMCAT_DISTRO="apache-tomcat-${TOMCAT_VERSION}"
44-
COPY "${TOMCAT_DISTRO}.tar.gz" /
41+
ENV TOMCAT_DISTRO="apache-tomcat-$TOMCAT_VERSION"
42+
COPY "$TOMCAT_DISTRO.tar.gz" /
4543
RUN ls -l /apache-tomcat-* >&2
4644

4745
ARG HYRAX_VERSION
48-
ENV HYRAX_VERSION=${HYRAX_VERSION:-"snapshot"}
49-
RUN echo "HYRAX_VERSION: ${HYRAX_VERSION}"
46+
ENV HYRAX_VERSION="${HYRAX_VERSION:-"snapshot"}"
47+
RUN echo "HYRAX_VERSION: $HYRAX_VERSION"
5048

5149
ARG LIBDAP_VERSION
52-
ENV LIBDAP_VERSION=${LIBDAP_VERSION:-"snapshot"}
53-
RUN echo "LIBDAP_VERSION: ${LIBDAP_VERSION}"
50+
ENV LIBDAP_VERSION="${LIBDAP_VERSION:-"snapshot"}"
51+
RUN echo "LIBDAP_VERSION: $LIBDAP_VERSION"
5452

5553
ARG LIBDAP_RPM
56-
ENV LIBDAP_RPM=${LIBDAP_RPM:-"libdap-${LIBDAP_VERSION}.el8.x86_64.rpm"}
57-
RUN echo "LIBDAP_RPM: ${LIBDAP_RPM}"
58-
COPY ${LIBDAP_RPM} libdap-devel-* libdap-debuginfo-* /
54+
ENV LIBDAP_RPM="${LIBDAP_RPM:-"libdap-$LIBDAP_VERSION.el8.x86_64.rpm"}"
55+
RUN echo "LIBDAP_RPM: $LIBDAP_RPM"
56+
COPY "$LIBDAP_RPM" libdap-devel-* libdap-debuginfo-* /
5957
RUN ls -l /libdap-* >&2
6058

6159
ARG BES_VERSION
62-
ENV BES_VERSION=${BES_VERSION:-"snapshot"}
63-
RUN echo "BES_VERSION: ${BES_VERSION}"
60+
ENV BES_VERSION="${BES_VERSION:-"snapshot"}"
61+
RUN echo "BES_VERSION: $BES_VERSION"
6462

6563
ARG BES_RPM
66-
ENV BES_RPM=${BES_RPM:-"bes-${BES_VERSION}.static.el8.x86_64.rpm"}
67-
RUN echo "BES_RPM: ${BES_RPM}"
68-
COPY ${BES_RPM} bes-devel-* bes-debuginfo-* /
64+
ENV BES_RPM="${BES_RPM:-"bes-$BES_VERSION.static.el8.x86_64.rpm"}"
65+
RUN echo "BES_RPM: $BES_RPM"
66+
COPY "$BES_RPM" bes-devel-* bes-debuginfo-* /
6967
RUN ls -l /bes-* >&2
7068

7169
ARG OLFS_VERSION
72-
ENV OLFS_VERSION=${OLFS_VERSION:-"unknown"}
73-
RUN echo "OLFS_VERSION: ${OLFS_VERSION}"
70+
ENV OLFS_VERSION="${OLFS_VERSION:-"unknown"}"
71+
RUN echo "OLFS_VERSION: $OLFS_VERSION"
7472

7573
ARG NGAP_DISTRO
76-
ENV NGAP_DISTRO=${NGAP_DISTRO:-"ngap-${OLFS_VERSION}-webapp"}
77-
RUN echo "NGAP_DISTRO: ${NGAP_DISTRO}"
78-
COPY ${NGAP_DISTRO}.tgz /${NGAP_DISTRO}.tgz
79-
RUN tar -tf /${NGAP_DISTRO}.tgz
74+
ENV NGAP_DISTRO="${NGAP_DISTRO:-"ngap-$OLFS_VERSION-webapp"}"
75+
RUN echo "NGAP_DISTRO: $NGAP_DISTRO"
76+
COPY "$NGAP_DISTRO.tgz" "/$NGAP_DISTRO.tgz"
77+
RUN tar -tf "/$NGAP_DISTRO.tgz"
8078

8179
ARG TOMCAT_CONNECTION_TIMEOUT_MS
82-
ENV TOMCAT_CONNECTION_TIMEOUT_MS=${TOMCAT_CONNECTION_TIMEOUT_MS:-"1000000"}
83-
RUN echo "TOMCAT_CONNECTION_TIMEOUT_MS: ${TOMCAT_CONNECTION_TIMEOUT_MS}"
80+
ENV TOMCAT_CONNECTION_TIMEOUT_MS="${TOMCAT_CONNECTION_TIMEOUT_MS:-"1000000"}"
81+
RUN echo "TOMCAT_CONNECTION_TIMEOUT_MS: $TOMCAT_CONNECTION_TIMEOUT_MS"
8482

8583
LABEL vendor="OPeNDAP"
86-
LABEL org.opendap.hyrax.version=${HYRAX_VERSION}
87-
LABEL org.opendap.hyrax.release-date=${RELEASE_DATE}
84+
LABEL org.opendap.hyrax.version="$HYRAX_VERSION"
85+
LABEL org.opendap.hyrax.release-date="$RELEASE_DATE"
8886
LABEL org.opendap.hyrax.version.is-production="false"
8987

90-
MAINTAINER support@opendap.org
88+
LABEL org.opencontainers.image.authors="support@opendap.org"
9189

9290
USER root
9391

9492
ARG DEVELOPER_MODE
95-
ENV DEVELOPER_MODE ${DEVELOPER_MODE:-"false"}
93+
ENV DEVELOPER_MODE="${DEVELOPER_MODE:-"false"}"
9694
RUN set -e && \
9795
if [ $DEVELOPER_MODE = "true" ];then echo "DEVELOPER_MODE: ENABLED"; else echo "DEVELOPER_MODE: DISABLED"; fi
9896

el8-builds/olfs/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ ENV python_version="3.11"
1111
ENV HR="###########################################################################"
1212
ENV HR2="# -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - --"
1313

14-
MAINTAINER support@opendap.org
14+
LABEL org.opencontainers.image.authors="support@opendap.org"
1515
USER root
1616

1717
RUN export NOW=`date +%s`

el9-build-recipe

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
TARGET_OS: el9
2+
TOMCAT_MAJOR_VERSION: 11
3+
libdap4-3.21.1-366 2026-01-27T19:58:24+0000
4+
bes-3.21.1-1065 2026-02-23T20:47:04+0000
5+
olfs-1.18.15-704 2026-02-24T18:37:24+0000
6+
hyrax-1.17.1-704 2026-02-24T18:37:24+0000

0 commit comments

Comments
 (0)