From 462d72f9be57b415d870e12572b5a9f4b12863bd Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Thu, 18 Dec 2025 15:29:10 -0500
Subject: [PATCH 01/24] fix readme :)
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index ac3bec9d..83ccbe6e 100644
--- a/README.md
+++ b/README.md
@@ -82,8 +82,8 @@ More elaborate instructions may be found below in this document.
_Hyrax Docker Hub Pages_
- [**Hyrax Data Server**](https://cloud.docker.com/u/opendap/repository/docker/opendap/hyrax)
- [**Hyrax Data Server + ncWMS2**](https://cloud.docker.com/u/opendap/repository/docker/opendap/hyrax_ncmws)
-- [**besd**](https://cloud.docker.com/u/opendap/repository/docker/opendap/olfs)
-- [**olfs**](https://cloud.docker.com/u/opendap/repository/docker/opendap/besd)
+- [**besd**](https://cloud.docker.com/u/opendap/repository/docker/opendap/besd)
+- [**olfs**](https://cloud.docker.com/u/opendap/repository/docker/opendap/olfs)
#### Build
From 9970c2ead925b657f39e1b536e8e4ab0a9392b1e Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Thu, 18 Dec 2025 15:31:31 -0500
Subject: [PATCH 02/24] remove stage that is not present in travis
---
.travis.yml | 2 --
1 file changed, 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 7b06c971..1197a266 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -87,8 +87,6 @@ install:
- ls -l ./builds
stages:
- - name: OLFS
- if: branch = master
- name: BUILD_AND_TEST
if: branch = master
- name: BUILD
From d8bf741d0dbd8b2a53f3d5c256fecdf1b3d21a34 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 14:59:05 -0500
Subject: [PATCH 03/24] lightweight hyrax build with new bes image base
---
.gitignore | 10 ++
.travis.yml | 268 ++++++++++++++++++++--------------------
builds/besd/Dockerfile | 4 -
builds/hyrax/Dockerfile | 69 +++--------
builds/ngap/Dockerfile | 3 -
builds/olfs/Dockerfile | 4 -
6 files changed, 159 insertions(+), 199 deletions(-)
diff --git a/.gitignore b/.gitignore
index f1cec08e..36128a2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,13 @@ logs
*.iml
*.log
/.project
+
+# Intermediate build artifacts
+*.tgz
+*.rpm
+*.gz
+*tar.gz.asc
+builds/cookies
+builds/bes.json
+builds/beslog2json.py
+apache_tomcat_keys
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 1197a266..03480711 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -114,12 +114,9 @@ jobs:
- export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- show_version
- get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" $ADD_DEBUG 2>&1
+ - BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
+ - BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
+ - docker image pull ${BES_IMAGE_TAG}
- s3_get_olfs_distro
"${S3_BUILD_BUCKET}"
"${DOCKER_NAME}"
@@ -130,6 +127,7 @@ jobs:
--build-arg HYRAX_VERSION
--build-arg LIBDAP_VERSION
--build-arg BES_VERSION
+ --build-arg BES_IMAGE_TAG
--build-arg OLFS_VERSION
--tag "${SNAPSHOT_IMAGE_TAG}"
--tag "${BUILD_VERSION_TAG}"
@@ -139,138 +137,138 @@ jobs:
- echo "Running Test Script"
- ./regression_test_script -i ${SNAPSHOT_IMAGE_TAG}
- - stage: BUILD
- name: "Build opendap/besd:snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="besd"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${BES_VERSION}"
- - show_version
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - docker build
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+# - stage: BUILD
+# name: "Build opendap/besd:snapshot (RH8)"
+# script:
+# - cd builds
+# - export DOCKER_NAME="besd"
+# - source ./build-rh8
+# - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
+# - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${BES_VERSION}"
+# - show_version
+# - s3_get_besd_distro
+# "${S3_BUILD_BUCKET}"
+# "${DOCKER_NAME}"
+# "el8"
+# "${LIBDAP_VERSION}"
+# "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+# - docker build
+# --build-arg RELEASE_DATE
+# --build-arg HYRAX_VERSION
+# --build-arg LIBDAP_VERSION
+# --build-arg BES_VERSION
+# --tag "${SNAPSHOT_IMAGE_TAG}"
+# --tag "${BUILD_VERSION_TAG}"
+# "${DOCKER_NAME}"
+# - docker image ls -a
- - stage: BUILD
- name: "Build opendap/hyrax_ncwms:snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="hyrax"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}_ncwms:snapshot"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}_ncwms:${HYRAX_VERSION}"
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - s3_get_olfs_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --build-arg OLFS_VERSION
- --build-arg USE_NCWMS=true
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+# - stage: BUILD
+# name: "Build opendap/hyrax_ncwms:snapshot (RH8)"
+# script:
+# - cd builds
+# - export DOCKER_NAME="hyrax"
+# - source ./build-rh8
+# - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}_ncwms:snapshot"
+# - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}_ncwms:${HYRAX_VERSION}"
+# - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+# - show_version
+# - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+# - s3_get_besd_distro
+# "${S3_BUILD_BUCKET}"
+# "${DOCKER_NAME}"
+# "el8"
+# "${LIBDAP_VERSION}"
+# "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+# - s3_get_olfs_distro
+# "${S3_BUILD_BUCKET}"
+# "${DOCKER_NAME}"
+# "${OLFS_VERSION}" 2>&1
+# - docker build
+# --build-arg TOMCAT_VERSION
+# --build-arg RELEASE_DATE
+# --build-arg HYRAX_VERSION
+# --build-arg LIBDAP_VERSION
+# --build-arg BES_VERSION
+# --build-arg OLFS_VERSION
+# --build-arg USE_NCWMS=true
+# --tag "${SNAPSHOT_IMAGE_TAG}"
+# --tag "${BUILD_VERSION_TAG}"
+# "${DOCKER_NAME}"
+# - docker image ls -a
- - stage: BUILD
- name: "Build opendap/hyrax:ngap-snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="ngap"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/hyrax:${DOCKER_NAME}-snapshot"
- - export BUILD_VERSION_TAG=opendap/hyrax:${DOCKER_NAME}-${HYRAX_VERSION}
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - get_ngap_olfs_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --build-arg OLFS_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+# - stage: BUILD
+# name: "Build opendap/hyrax:ngap-snapshot (RH8)"
+# script:
+# - cd builds
+# - export DOCKER_NAME="ngap"
+# - source ./build-rh8
+# - export SNAPSHOT_IMAGE_TAG="opendap/hyrax:${DOCKER_NAME}-snapshot"
+# - export BUILD_VERSION_TAG=opendap/hyrax:${DOCKER_NAME}-${HYRAX_VERSION}
+# - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+# - show_version
+# - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+# - s3_get_besd_distro
+# "${S3_BUILD_BUCKET}"
+# "${DOCKER_NAME}"
+# "el8"
+# "${LIBDAP_VERSION}"
+# "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+# - get_ngap_olfs_distro
+# "${S3_BUILD_BUCKET}"
+# "${DOCKER_NAME}"
+# "${OLFS_VERSION}" 2>&1
+# - docker build
+# --build-arg TOMCAT_VERSION
+# --build-arg RELEASE_DATE
+# --build-arg HYRAX_VERSION
+# --build-arg LIBDAP_VERSION
+# --build-arg BES_VERSION
+# --build-arg OLFS_VERSION
+# --tag "${SNAPSHOT_IMAGE_TAG}"
+# --tag "${BUILD_VERSION_TAG}"
+# "${DOCKER_NAME}"
+# - docker image ls -a
- - stage: BUILD
- name: "Build opendap/olfs:snapshot"
- script:
- - cd builds
- - export DOCKER_NAME="olfs"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${OLFS_VERSION}"
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_olfs_distro
- "${S3_BUILD_BUCKET}"
- "olfs"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg OLFS_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}" olfs
- - docker image ls -a
+# - stage: BUILD
+# name: "Build opendap/olfs:snapshot"
+# script:
+# - cd builds
+# - export DOCKER_NAME="olfs"
+# - source ./build-rh8
+# - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
+# - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${OLFS_VERSION}"
+# - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+# - show_version
+# - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+# - s3_get_olfs_distro
+# "${S3_BUILD_BUCKET}"
+# "olfs"
+# "${OLFS_VERSION}" 2>&1
+# - docker build
+# --build-arg TOMCAT_VERSION
+# --build-arg RELEASE_DATE
+# --build-arg HYRAX_VERSION
+# --build-arg OLFS_VERSION
+# --tag "${SNAPSHOT_IMAGE_TAG}"
+# --tag "${BUILD_VERSION_TAG}" olfs
+# - docker image ls -a
- - stage: TEST_DEPLOYED_IMAGE
- name: "Test Deployed Image (RH8)"
- script:
- - export TEST_IMAGE=opendap/hyrax:${HYRAX_VERSION}
- - echo "Running Hyrax Regression Test Script on ${TEST_IMAGE}"
- - ./regression_test_script -i "${TEST_IMAGE}"
- - export DEPLOY_ME="false"
+# - stage: TEST_DEPLOYED_IMAGE
+# name: "Test Deployed Image (RH8)"
+# script:
+# - export TEST_IMAGE=opendap/hyrax:${HYRAX_VERSION}
+# - echo "Running Hyrax Regression Test Script on ${TEST_IMAGE}"
+# - ./regression_test_script -i "${TEST_IMAGE}"
+# - export DEPLOY_ME="false"
-before_deploy:
- - export DOCKER_LOGIN=`aws ecr get-login --region us-east-1 | sed "s/-e none //g"`;
- - $DOCKER_LOGIN;
- - echo "DEPLOY_ME is ${DEPLOY_ME}"
+# before_deploy:
+# - export DOCKER_LOGIN=`aws ecr get-login --region us-east-1 | sed "s/-e none //g"`;
+# - $DOCKER_LOGIN;
+# - echo "DEPLOY_ME is ${DEPLOY_ME}"
-deploy:
- - provider: script
- script: bash ${TRAVIS_BUILD_DIR}/deploy_to_docker_hub.sh
- on:
- branch: master
- condition: ${DEPLOY_ME} = "true"
+# deploy:
+# - provider: script
+# script: bash ${TRAVIS_BUILD_DIR}/deploy_to_docker_hub.sh
+# on:
+# branch: master
+# condition: ${DEPLOY_ME} = "true"
diff --git a/builds/besd/Dockerfile b/builds/besd/Dockerfile
index cb6bf753..84037637 100644
--- a/builds/besd/Dockerfile
+++ b/builds/besd/Dockerfile
@@ -56,10 +56,6 @@ RUN set -e && dnf install -y which bc emacs vim \
&& dnf update -y \
&& dnf clean all
-RUN set -e && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 \
- && python3 -m pip install --upgrade pip \
- && python3 -m pip install --no-cache-dir awscli
-
###############################################################
# Retrieve and install the latest libdap snapshot
RUN set -e \
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 523816d2..6de7c77b 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -13,15 +13,16 @@
# it for debugging stuff.
#
# Set one or more individual labels
-FROM rockylinux:8
+ARG BES_IMAGE_TAG
+FROM ${BES_IMAGE_TAG}
-RUN export NOW=`date +%s`
+ENV NOW="$(`date +%s`)"
ARG RELEASE_DATE
-ENV RELEASE_DATE ${RELEASE_DATE:-"${NOW}"}
+ENV RELEASE_DATE=${RELEASE_DATE:-"${NOW}"}
RUN echo "RELEASE_DATE: ${RELEASE_DATE}"
ARG TOMCAT_VERSION
-ENV TOMCAT_VERSION ${TOMCAT_VERSION:-"9.0.64"}
+ENV TOMCAT_VERSION=${TOMCAT_VERSION:-"9.0.64"}
RUN echo "TOMCAT_VERSION: ${TOMCAT_VERSION}"
ENV TOMCAT_DISTRO="apache-tomcat-${TOMCAT_VERSION}"
COPY "${TOMCAT_DISTRO}.tar.gz" /
@@ -31,26 +32,17 @@ ARG HYRAX_VERSION
ENV HYRAX_VERSION=${HYRAX_VERSION:-"snapshot"}
RUN echo "HYRAX_VERSION: ${HYRAX_VERSION}"
+# TODO: confirm that LIBDAP_VERSION and BES_VERSION match
+# versions previously installed in base image, fail if not
+
ARG LIBDAP_VERSION
ENV LIBDAP_VERSION=${LIBDAP_VERSION:-"snapshot"}
RUN echo "LIBDAP_VERSION: ${LIBDAP_VERSION}"
-ARG LIBDAP_RPM
-ENV LIBDAP_RPM=${LIBDAP_RPM:-"libdap-${LIBDAP_VERSION}.el8.x86_64.rpm"}
-RUN echo "LIBDAP_RPM: ${LIBDAP_RPM}"
-COPY ${LIBDAP_RPM} libdap-devel-* libdap-debuginfo-* /
-RUN ls -l /libdap-* >&2
-
ARG BES_VERSION
ENV BES_VERSION=${BES_VERSION:-"snapshot"}
RUN echo "BES_VERSION: ${BES_VERSION}"
-ARG BES_RPM
-ENV BES_RPM=${BES_RPM:-"bes-${BES_VERSION}.static.el8.x86_64.rpm"}
-RUN echo "BES_RPM: ${BES_RPM}"
-COPY ${BES_RPM} bes-devel-* bes-debuginfo-* /
-RUN ls -l /bes-* >&2
-
ARG OLFS_VERSION
ENV OLFS_VERSION=${OLFS_VERSION:-"snapshot"}
RUN echo "OLFS_VERSION: ${OLFS_VERSION}"
@@ -74,7 +66,7 @@ LABEL org.opendap.hyrax.version=${HYRAX_VERSION}
LABEL org.opendap.hyrax.release-date=${RELEASE_DATE}
LABEL org.opendap.hyrax.version.is-production="false"
-MAINTAINER support@opendap.org
+LABEL maintainer=support@opendap.org
USER root
@@ -82,7 +74,7 @@ USER root
# The --build-arg USE_NCWMS can be set to "true" in order to
# add the ncWMS application to the build.
ARG USE_NCWMS
-ENV USE_NCWMS ${USE_NCWMS:-"false"}
+ENV USE_NCWMS=${USE_NCWMS:-"false"}
RUN if [ $USE_NCWMS = "true" ];then echo "NCWMS: ENABLED"; else echo "NCWMS: DISABLED"; fi
#
@@ -91,12 +83,12 @@ RUN if [ $USE_NCWMS = "true" ];then echo "NCWMS: ENABLED"; else echo "NCWMS: DIS
# the URL: https://localhost:8080 if the environment variable NCWMS_BASE
# is not in the shell from which the entrypoint.sh script is called.
ARG NCWMS_BASE
-ENV NCWMS_BASE ${NCWMS_BASE:-"https://localhost:8080"}
+ENV NCWMS_BASE=${NCWMS_BASE:-"https://localhost:8080"}
RUN if [ $USE_NCWMS = "true" ];then echo "NCWMS_BASE: {$NCWMS_BASE}"; fi
ARG DEVELOPER_MODE
-ENV DEVELOPER_MODE ${DEVELOPER_MODE:-"false"}
+ENV DEVELOPER_MODE=${DEVELOPER_MODE:-"false"}
RUN if [ $DEVELOPER_MODE = "true" ];then echo "DEVELOPER_MODE: ENABLED"; else echo "DEVELOPER_MODE: DISABLED"; fi
#Get mirrorlist before running yum
@@ -122,37 +114,9 @@ RUN set -e && dnf install -y make curl unzip which autoconf automake emacs vim j
&& dnf install -y java-11-openjdk-devel
# Temporary Hack to fix broken OpenJDK-11.0.20.0.8-2
RUN set -e && dnf install -y tzdata-java
-#
-RUN set -e && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 \
- && python3 -m pip install --upgrade pip \
- && python3 -m pip install --no-cache-dir awscli
-#
RUN set -e && dnf clean all
RUN set -e && which diff
-#
-
-
-
-################################################################
-# Install the latest libdap snapshot
-# - - - - - - - - - - - - - - - - - - - - -
-RUN set -e \
- && echo "Installing the libdap rpm: ${LIBDAP_RPM}" \
- && ls -l ./libdap* \
- && dnf -y install ./libdap-*.rpm \
- && rm -f ./${LIBDAP_RPM}
-
-RUN echo "libdap4 is installed."
-
-################################################################
-# Install the latest BES snapshot
-# - - - - - - - - - - - - - - - - - - - - -
-RUN set -e \
- && echo "Installing the latest BES rpm: ${BES_RPM}" \
- && ls -l ./bes* \
- && dnf -y install ./bes-*.rpm \
- && rm -f ./${BES_RPM}
RUN echo "besdaemon is here: "`which besdaemon`
@@ -178,8 +142,8 @@ RUN set -e && systemctl enable tomcat
#RUN firewall-cmd --add-port 8080/tcp --permanent
#RUN firewall-cmd --reload
-ENV CATALINA_HOME /usr/share/tomcat
-ENV PATH $CATALINA_HOME/bin:$PATH
+ENV CATALINA_HOME=/usr/share/tomcat
+ENV PATH=$CATALINA_HOME/bin:$PATH
RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
# Install our modified server.xml so that the server compresses responses.
@@ -228,7 +192,7 @@ RUN set -e \
################################################################
# Clean up the Hyrax distribution binaries.
#
-RUN rm -vf /libdap*.rpm /bes*.rpm /olfs*.tgz /robots*.tgz /apache*
+RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
#
################################################################
@@ -237,7 +201,7 @@ RUN rm -vf /libdap*.rpm /bes*.rpm /olfs*.tgz /robots*.tgz /apache*
# - - - - - - - - - - - - - - - - - - - - -
ARG NCWMS_VERSION
-ENV NCWMS_VERSION ${NCWMS_VERSION:-"2.5.2"}
+ENV NCWMS_VERSION=${NCWMS_VERSION:-"2.5.2"}
RUN echo "NCWMS_VERSION: ${NCWMS_VERSION}"
ENV NCWMS_WAR_URL="https://github.com/Reading-eScience-Centre/ncwms/releases/download/ncwms-${NCWMS_VERSION}/ncWMS2.war"
RUN echo "NCWMS_WAR_URL: ${NCWMS_WAR_URL}"
@@ -330,4 +294,3 @@ RUN chown -R bes /etc/bes
USER root
CMD ["-"]
-
diff --git a/builds/ngap/Dockerfile b/builds/ngap/Dockerfile
index 4396fb79..0083af3c 100644
--- a/builds/ngap/Dockerfile
+++ b/builds/ngap/Dockerfile
@@ -114,9 +114,6 @@ RUN set -e && dnf install -y tzdata-java
#
RUN set -e && dnf clean all
#
-RUN set -e && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 \
- && python3 -m pip install --upgrade pip \
- && python3 -m pip install awscli
################################################################
# Install the latest libdap snapshot
diff --git a/builds/olfs/Dockerfile b/builds/olfs/Dockerfile
index c639fedf..c635041e 100644
--- a/builds/olfs/Dockerfile
+++ b/builds/olfs/Dockerfile
@@ -75,10 +75,6 @@ RUN set -e && dnf install -y curl unzip which emacs vim \
&& dnf install -y java-11-openjdk-devel \
&& dnf install -y tzdata-java \
&& dnf clean all
-#
-RUN set -e && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 \
- && python3 -m pip install --upgrade pip \
- && python3 -m pip install awscli
################################################################
From 6616a690590309069ef7372abc203c61514b9ac4 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 15:14:53 -0500
Subject: [PATCH 04/24] update bes image for debugging
---
.travis.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 03480711..3ff081cf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -115,6 +115,8 @@ jobs:
- show_version
- get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
+ # TODO: use versioned image! For testing, use the snapshot.
+ - BES_IMAGE_TAG="opendap/bes_rhel8:$snapshot"
- BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
- docker image pull ${BES_IMAGE_TAG}
- s3_get_olfs_distro
From 03705379ba44a5547e292b9db5fac800a75b24b3 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 15:41:49 -0500
Subject: [PATCH 05/24] actually export vars
---
.travis.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 3ff081cf..2b240e79 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -114,10 +114,10 @@ jobs:
- export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- show_version
- get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
+ - export BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
# TODO: use versioned image! For testing, use the snapshot.
- - BES_IMAGE_TAG="opendap/bes_rhel8:$snapshot"
- - BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
+ - export BES_IMAGE_TAG="opendap/bes_rhel8:$snapshot"
+ - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
- docker image pull ${BES_IMAGE_TAG}
- s3_get_olfs_distro
"${S3_BUILD_BUCKET}"
From 03f622e705408bf4d7c8ca5ade3bd0c87e01ef22 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 16:07:45 -0500
Subject: [PATCH 06/24] update version to include image
---
.travis.yml | 8 ++++----
builds/build-rh8 | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 2b240e79..b1f2a357 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -112,13 +112,13 @@ jobs:
- export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
- export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${HYRAX_VERSION}"
- export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- export BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
# TODO: use versioned image! For testing, use the snapshot.
- - export BES_IMAGE_TAG="opendap/bes_rhel8:$snapshot"
- - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
+ - export BES_IMAGE_TAG="opendap/bes_rhel8:snapshot"
+ # - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
+ - show_version
- docker image pull ${BES_IMAGE_TAG}
+ - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- s3_get_olfs_distro
"${S3_BUILD_BUCKET}"
"${DOCKER_NAME}"
diff --git a/builds/build-rh8 b/builds/build-rh8
index bd21d660..ae9f5d81 100755
--- a/builds/build-rh8
+++ b/builds/build-rh8
@@ -54,6 +54,7 @@ function show_version(){
loggy " HYRAX_VERSION: ${HYRAX_VERSION}"
loggy " OLFS_VERSION: ${OLFS_VERSION}"
loggy " BES_VERSION: ${BES_VERSION}"
+ loggy " BES_IMAGE_TAG: ${BES_IMAGE_TAG}"
loggy " BUILD_DMRPP_VERSION: ${BUILD_DMRPP_VERSION}"
loggy " LIBDAP_VERSION: ${LIBDAP_VERSION}"
loggy " DOCKER_NAME: ${DOCKER_NAME}"
From 65d05615850798d5f26761fbdbfa1c1d704f0ab8 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 16:14:31 -0500
Subject: [PATCH 07/24] fail script if any one step fails
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index b1f2a357..0ccf0557 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -106,6 +106,7 @@ jobs:
- stage: BUILD_AND_TEST
name: "Build and Test opendap/hyrax:snapshot (RH8)"
script:
+ - set -e
- cd builds
- export DOCKER_NAME="hyrax"
- source ./build-rh8
From 377f005dd3075f829075178c201e0e21d1ed9dc3 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 19 Dec 2025 16:35:32 -0500
Subject: [PATCH 08/24] update to match bes version
---
.travis.yml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 0ccf0557..aa8e1a5b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -106,17 +106,15 @@ jobs:
- stage: BUILD_AND_TEST
name: "Build and Test opendap/hyrax:snapshot (RH8)"
script:
- - set -e
- cd builds
- export DOCKER_NAME="hyrax"
- source ./build-rh8
- export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot"
- export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${HYRAX_VERSION}"
- export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - export BES_IMAGE_BUILD_NUMBER="$(echo ${BES_VERSION} | cut -d- -f2)"
# TODO: use versioned image! For testing, use the snapshot.
- export BES_IMAGE_TAG="opendap/bes_rhel8:snapshot"
- # - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_IMAGE_BUILD_NUMBER}"
+ # - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_VERSION}"
- show_version
- docker image pull ${BES_IMAGE_TAG}
- get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
From 249181fa461e09bad00f3b8513c8959c10606f82 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 22 Dec 2025 15:36:01 -0500
Subject: [PATCH 09/24] fail fast
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index aa8e1a5b..9e98851a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -106,6 +106,7 @@ jobs:
- stage: BUILD_AND_TEST
name: "Build and Test opendap/hyrax:snapshot (RH8)"
script:
+ - set -e # Fail fast
- cd builds
- export DOCKER_NAME="hyrax"
- source ./build-rh8
From ce966aea708b1fc3f0543d65f59f51d8f4496bfe Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 22 Dec 2025 17:07:04 -0500
Subject: [PATCH 10/24] add additional installation steps from rpm
---
.travis.yml | 2 +-
builds/hyrax/Dockerfile | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 9e98851a..9271a861 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -106,7 +106,6 @@ jobs:
- stage: BUILD_AND_TEST
name: "Build and Test opendap/hyrax:snapshot (RH8)"
script:
- - set -e # Fail fast
- cd builds
- export DOCKER_NAME="hyrax"
- source ./build-rh8
@@ -123,6 +122,7 @@ jobs:
"${S3_BUILD_BUCKET}"
"${DOCKER_NAME}"
"${OLFS_VERSION}" 2>&1
+ - set -e # Don't keep going if the docker build fails....
- docker build
--build-arg TOMCAT_VERSION
--build-arg RELEASE_DATE
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 6de7c77b..c88e1082 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -118,8 +118,24 @@ RUN set -e && dnf install -y tzdata-java
RUN set -e && dnf clean all
RUN set -e && which diff
+
+################################################################
+# Set up BES
+#
+# BES is already installed by definition on the base image, but
+# we need to do some final installation steps that would otherwise
+# be handled by RPM installation
+
RUN echo "besdaemon is here: "`which besdaemon`
+# Instead of rpm pre:
+RUN getent group bes >/dev/null || groupadd -r bes
+RUN getent passwd bes >/dev/null || \
+ useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
+
+# Instead of rpm post:
+RUN cd bes && chkconfig --add besd
+
################################################################
# Install and Setup Tomcat
#
From bce47cf311c7d9c07bc7c028011a120b6f9c5901 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 22 Dec 2025 17:15:57 -0500
Subject: [PATCH 11/24] fail faster
---
.travis.yml | 10 +-
builds/hyrax/Dockerfile | 338 ++++++++++++++++++++--------------------
2 files changed, 174 insertions(+), 174 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 9271a861..d9f6f9cf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -117,11 +117,11 @@ jobs:
# - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_VERSION}"
- show_version
- docker image pull ${BES_IMAGE_TAG}
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_olfs_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "${OLFS_VERSION}" 2>&1
+ # - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+ # - s3_get_olfs_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "${OLFS_VERSION}" 2>&1
- set -e # Don't keep going if the docker build fails....
- docker build
--build-arg TOMCAT_VERSION
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index c88e1082..df607a28 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -133,176 +133,176 @@ RUN getent group bes >/dev/null || groupadd -r bes
RUN getent passwd bes >/dev/null || \
useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
-# Instead of rpm post:
-RUN cd bes && chkconfig --add besd
-
-################################################################
-# Install and Setup Tomcat
-#
-# Make tomcat user and group
-# - - - - - - - - - - - - - - - - - - - - -
-RUN set -e && useradd -m -U -d /home/tomcat -s /bin/false tomcat
-#
-# Install the Tomcat package that should have been copied into
-# the root directory prior to this layer.
-#
-RUN set -e \
- && tar -xvf "/${TOMCAT_DISTRO}.tar.gz" -C /home/tomcat >&2 \
- && ln -s /home/tomcat/${TOMCAT_DISTRO} /usr/share/tomcat >&2 \
- && ln -s /home/tomcat/${TOMCAT_DISTRO} /tomcat >&2 \
- && rm -rvf /usr/share/tomcat/webapps/* >&2 \
- && mkdir -p /var/log/tomcat \
- && chown -R tomcat:tomcat /var/log/tomcat /home/tomcat
-COPY tomcat.service /etc/systemd/system/tomcat.service
-RUN set -e && systemctl enable tomcat
-#RUN firewall-cmd --add-port 8080/tcp --permanent
-#RUN firewall-cmd --reload
-
-ENV CATALINA_HOME=/usr/share/tomcat
-ENV PATH=$CATALINA_HOME/bin:$PATH
-RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
-
-# Install our modified server.xml so that the server compresses responses.
-COPY tomcat9-server.xml /
-RUN set -e \
- && mv /tomcat9-server.xml ${CATALINA_HOME}/conf/server.xml \
- && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml
-
-RUN set -e \
- && echo "Cleaning up Tomcat distribution files..." >&2 \
- && rm -fv "/${TOMCAT_DISTRO}.tar.gz"
-
-################################################################
-# Install the OLFS web application
-# - - - - - - - - - - - - - - - - - - - - -
-ENV ROOT=/dev/shm
-
-RUN echo "Installing the latest olfs distribution (${OLFS_VERSION})." >&2
-RUN set -e \
- && echo "working_dir: "`pwd` >&2 \
- && ls -l . \
- && tar -C ${ROOT} -xzvf ./${OLFS_DISTRO}.tgz \
- && ls -l ${ROOT} \
- && echo "Unpacking warfile..." >&2 \
- && mkdir -p $(readlink -f ${CATALINA_HOME})/webapps/${DEPLOYMENT_CONTEXT}/ \
- && unzip -o ${ROOT}/${OLFS_DISTRO}/opendap.war -d ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/ \
- && echo "Cleaning up." >&2 \
- && rm -rf ${ROOT}/${OLFS_DISTRO} ./${OLFS_DISTRO}.tgz
-
-RUN set -e \
- && echo "Installing the latest dynamic robots.txt distribution (${OLFS_VERSION})." >&2 \
- && ls -l ./robots* \
- && tar -C ${ROOT} -xzf ./${ROBOTS_DISTRO}.tgz \
- && ls -l ${ROOT}/${ROBOTS_DISTRO} \
- && echo "Unpacking dynamic robots.txt warfile..." >&2 \
- && unzip -o ${ROOT}/${ROBOTS_DISTRO}/ROOT.war -d ${CATALINA_HOME}/webapps/ROOT/ \
- && echo "Cleaning up dynamic robots.txt snapshot..." >&2 \
- && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz
-
-# Fix ownership and access permissions
-RUN set -e \
- && mkdir -p ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
- && chown -R tomcat:tomcat ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
- && chmod 700 ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs
-
-################################################################
-# Clean up the Hyrax distribution binaries.
-#
-RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
-#
-################################################################
-
-################################################################
-# retrieve and install the ncWMS web application
-# - - - - - - - - - - - - - - - - - - - - -
-
-ARG NCWMS_VERSION
-ENV NCWMS_VERSION=${NCWMS_VERSION:-"2.5.2"}
-RUN echo "NCWMS_VERSION: ${NCWMS_VERSION}"
-ENV NCWMS_WAR_URL="https://github.com/Reading-eScience-Centre/ncwms/releases/download/ncwms-${NCWMS_VERSION}/ncWMS2.war"
-RUN echo "NCWMS_WAR_URL: ${NCWMS_WAR_URL}"
-
-RUN if [ $USE_NCWMS = "true" ]; then \
- echo "Installing ncWMS..."; \
- curl -sfSL ${NCWMS_WAR_URL} -o /dev/shm/ncWMS.war; \
- unzip -o /dev/shm/ncWMS.war -d ${CATALINA_HOME}/webapps/ncWMS2/; \
- rm -rf /dev/shm/*; \
- else \
- echo "ncWMS will NOT be installed."; \
- fi
-
-# set a default ncWMS admin if DEVELOPER_MODE is enabled.
-RUN if [ ${DEVELOPER_MODE} = "true" ] && [ $USE_NCWMS = "true" ]; then \
- echo "DEVELOPER MODE: Adding ncWMS admin credentials"; \
- sed -i 'sXX X' ${CATALINA_HOME}/conf/tomcat-users.xml; \
- else \
- echo "No ncWMS admin credentials installed."; \
- fi
+# Instead of rpm post: #TODO-maybe: cd into bes dir first??
+RUN chkconfig --add besd
+
+# ################################################################
+# # Install and Setup Tomcat
+# #
+# # Make tomcat user and group
+# # - - - - - - - - - - - - - - - - - - - - -
+# RUN set -e && useradd -m -U -d /home/tomcat -s /bin/false tomcat
+# #
+# # Install the Tomcat package that should have been copied into
+# # the root directory prior to this layer.
+# #
+# RUN set -e \
+# && tar -xvf "/${TOMCAT_DISTRO}.tar.gz" -C /home/tomcat >&2 \
+# && ln -s /home/tomcat/${TOMCAT_DISTRO} /usr/share/tomcat >&2 \
+# && ln -s /home/tomcat/${TOMCAT_DISTRO} /tomcat >&2 \
+# && rm -rvf /usr/share/tomcat/webapps/* >&2 \
+# && mkdir -p /var/log/tomcat \
+# && chown -R tomcat:tomcat /var/log/tomcat /home/tomcat
+# COPY tomcat.service /etc/systemd/system/tomcat.service
+# RUN set -e && systemctl enable tomcat
+# #RUN firewall-cmd --add-port 8080/tcp --permanent
+# #RUN firewall-cmd --reload
+
+# ENV CATALINA_HOME=/usr/share/tomcat
+# ENV PATH=$CATALINA_HOME/bin:$PATH
+# RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
+
+# # Install our modified server.xml so that the server compresses responses.
+# COPY tomcat9-server.xml /
+# RUN set -e \
+# && mv /tomcat9-server.xml ${CATALINA_HOME}/conf/server.xml \
+# && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml
+
+# RUN set -e \
+# && echo "Cleaning up Tomcat distribution files..." >&2 \
+# && rm -fv "/${TOMCAT_DISTRO}.tar.gz"
+
+# ################################################################
+# # Install the OLFS web application
+# # - - - - - - - - - - - - - - - - - - - - -
+# ENV ROOT=/dev/shm
+
+# RUN echo "Installing the latest olfs distribution (${OLFS_VERSION})." >&2
+# RUN set -e \
+# && echo "working_dir: "`pwd` >&2 \
+# && ls -l . \
+# && tar -C ${ROOT} -xzvf ./${OLFS_DISTRO}.tgz \
+# && ls -l ${ROOT} \
+# && echo "Unpacking warfile..." >&2 \
+# && mkdir -p $(readlink -f ${CATALINA_HOME})/webapps/${DEPLOYMENT_CONTEXT}/ \
+# && unzip -o ${ROOT}/${OLFS_DISTRO}/opendap.war -d ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/ \
+# && echo "Cleaning up." >&2 \
+# && rm -rf ${ROOT}/${OLFS_DISTRO} ./${OLFS_DISTRO}.tgz
+
+# RUN set -e \
+# && echo "Installing the latest dynamic robots.txt distribution (${OLFS_VERSION})." >&2 \
+# && ls -l ./robots* \
+# && tar -C ${ROOT} -xzf ./${ROBOTS_DISTRO}.tgz \
+# && ls -l ${ROOT}/${ROBOTS_DISTRO} \
+# && echo "Unpacking dynamic robots.txt warfile..." >&2 \
+# && unzip -o ${ROOT}/${ROBOTS_DISTRO}/ROOT.war -d ${CATALINA_HOME}/webapps/ROOT/ \
+# && echo "Cleaning up dynamic robots.txt snapshot..." >&2 \
+# && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz
+
+# # Fix ownership and access permissions
+# RUN set -e \
+# && mkdir -p ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
+# && chown -R tomcat:tomcat ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
+# && chmod 700 ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs
+
+# ################################################################
+# # Clean up the Hyrax distribution binaries.
+# #
+# RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
+# #
+# ################################################################
+
+# ################################################################
+# # retrieve and install the ncWMS web application
+# # - - - - - - - - - - - - - - - - - - - - -
+
+# ARG NCWMS_VERSION
+# ENV NCWMS_VERSION=${NCWMS_VERSION:-"2.5.2"}
+# RUN echo "NCWMS_VERSION: ${NCWMS_VERSION}"
+# ENV NCWMS_WAR_URL="https://github.com/Reading-eScience-Centre/ncwms/releases/download/ncwms-${NCWMS_VERSION}/ncWMS2.war"
+# RUN echo "NCWMS_WAR_URL: ${NCWMS_WAR_URL}"
+
+# RUN if [ $USE_NCWMS = "true" ]; then \
+# echo "Installing ncWMS..."; \
+# curl -sfSL ${NCWMS_WAR_URL} -o /dev/shm/ncWMS.war; \
+# unzip -o /dev/shm/ncWMS.war -d ${CATALINA_HOME}/webapps/ncWMS2/; \
+# rm -rf /dev/shm/*; \
+# else \
+# echo "ncWMS will NOT be installed."; \
+# fi
+
+# # set a default ncWMS admin if DEVELOPER_MODE is enabled.
+# RUN if [ ${DEVELOPER_MODE} = "true" ] && [ $USE_NCWMS = "true" ]; then \
+# echo "DEVELOPER MODE: Adding ncWMS admin credentials"; \
+# sed -i 'sXX X' ${CATALINA_HOME}/conf/tomcat-users.xml; \
+# else \
+# echo "No ncWMS admin credentials installed."; \
+# fi
-#
-# make ncWMS work without further configuration
-# We will need to adjust this target if we
-# decide to run as a different (not root) user.
-COPY ncWMS_config.xml /root/.ncWMS2/config.xml
-RUN chmod +r /root/.ncWMS2/config.xml
-
-COPY olfs_viewers.xml /tmp/olfs_viewers.xml
-RUN if [ $USE_NCWMS = "true" ]; then \
- # If we're installing ncWMS then we copy
- # to the server a viewers.xml which has
- # been templated so that the ncWMS host can be installed
- # at startup.
- mv /tmp/olfs_viewers.xml ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/viewers.xml; \
- else \
- echo "Skipping OLFS/ncWMS confguration installation."; \
- fi
-
-################################################################
-#
-# Retrieve, verify, and install the hyrax_regression_tests
-# project
-#
-# - - - - - - - - - - - - - - - - - - - - -
-ENV TEST_INSTALL_DIR="/hyrax_regression_tests"
-RUN set -e \
- && echo "Retrieving, and building hyrax regression tests." \
- && echo "h_r_t will be in: ${TEST_INSTALL_DIR}" \
- && mkdir -p ${TEST_INSTALL_DIR} \
- && git clone -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
- && cd ${TEST_INSTALL_DIR} \
- && autoreconf -vif \
- && ./configure
-
-# In order to get the executable "testsuite" to build we have to run
-# "make check" But that will fail at build time so the "make check" call
-# ends up pretty tortured to avoid a build error.
-RUN set -e \
- && cd ${TEST_INSTALL_DIR} \
- && make testsuite > mk.log 2>&1 \
- && echo "SUCCESS: hyrax_regression_tests ready!"
-################################################################
-
-RUN ls -l /usr/libexec/
-
-################################################################
-# TEMPORARY
-# Grab the cleanup files script for managing orphaned files
-# from fileout_netcdf
-COPY cleanup_files.sh /
-RUN chmod +x /cleanup_files.sh
-# TEMPORARY
-################################################################
-
-
-COPY entrypoint.sh /
-RUN chmod +x /entrypoint.sh
-ENTRYPOINT [ "/entrypoint.sh" ]
-
-EXPOSE 8009
-EXPOSE 8080
-EXPOSE 8443
-EXPOSE 10022
-EXPOSE 11002
+# #
+# # make ncWMS work without further configuration
+# # We will need to adjust this target if we
+# # decide to run as a different (not root) user.
+# COPY ncWMS_config.xml /root/.ncWMS2/config.xml
+# RUN chmod +r /root/.ncWMS2/config.xml
+
+# COPY olfs_viewers.xml /tmp/olfs_viewers.xml
+# RUN if [ $USE_NCWMS = "true" ]; then \
+# # If we're installing ncWMS then we copy
+# # to the server a viewers.xml which has
+# # been templated so that the ncWMS host can be installed
+# # at startup.
+# mv /tmp/olfs_viewers.xml ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/viewers.xml; \
+# else \
+# echo "Skipping OLFS/ncWMS confguration installation."; \
+# fi
+
+# ################################################################
+# #
+# # Retrieve, verify, and install the hyrax_regression_tests
+# # project
+# #
+# # - - - - - - - - - - - - - - - - - - - - -
+# ENV TEST_INSTALL_DIR="/hyrax_regression_tests"
+# RUN set -e \
+# && echo "Retrieving, and building hyrax regression tests." \
+# && echo "h_r_t will be in: ${TEST_INSTALL_DIR}" \
+# && mkdir -p ${TEST_INSTALL_DIR} \
+# && git clone -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
+# && cd ${TEST_INSTALL_DIR} \
+# && autoreconf -vif \
+# && ./configure
+
+# # In order to get the executable "testsuite" to build we have to run
+# # "make check" But that will fail at build time so the "make check" call
+# # ends up pretty tortured to avoid a build error.
+# RUN set -e \
+# && cd ${TEST_INSTALL_DIR} \
+# && make testsuite > mk.log 2>&1 \
+# && echo "SUCCESS: hyrax_regression_tests ready!"
+# ################################################################
+
+# RUN ls -l /usr/libexec/
+
+# ################################################################
+# # TEMPORARY
+# # Grab the cleanup files script for managing orphaned files
+# # from fileout_netcdf
+# COPY cleanup_files.sh /
+# RUN chmod +x /cleanup_files.sh
+# # TEMPORARY
+# ################################################################
+
+
+# COPY entrypoint.sh /
+# RUN chmod +x /entrypoint.sh
+# # ENTRYPOINT [ "/entrypoint.sh" ]
+
+# EXPOSE 8009
+# EXPOSE 8080
+# EXPOSE 8443
+# EXPOSE 10022
+# EXPOSE 11002
# can't use USER with entrypoint that needs root
# use gosu or, as done, enable bes user write so the entrypoint does not need root
From c702ac15c558543f79658ac793f35bedfb2502a0 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 22 Dec 2025 17:22:09 -0500
Subject: [PATCH 12/24] fail even faster
---
.travis.yml | 1 -
builds/hyrax/Dockerfile | 18 +++++++++---------
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index d9f6f9cf..e50d7f53 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -116,7 +116,6 @@ jobs:
- export BES_IMAGE_TAG="opendap/bes_rhel8:snapshot"
# - export BES_IMAGE_TAG="opendap/bes_rhel8:${BES_VERSION}"
- show_version
- - docker image pull ${BES_IMAGE_TAG}
# - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
# - s3_get_olfs_distro
# "${S3_BUILD_BUCKET}"
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index df607a28..3fc6d6ea 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -47,15 +47,15 @@ ARG OLFS_VERSION
ENV OLFS_VERSION=${OLFS_VERSION:-"snapshot"}
RUN echo "OLFS_VERSION: ${OLFS_VERSION}"
-ARG OLFS_DISTRO
-ENV OLFS_DISTRO=${OLFS_DISTRO:-"olfs-${OLFS_VERSION}-webapp"}
-RUN echo "OLFS_DISTRO: ${OLFS_DISTRO}"
-COPY ${OLFS_DISTRO}.tgz /${OLFS_DISTRO}.tgz
-
-ARG ROBOTS_DISTRO
-ENV ROBOTS_DISTRO=${ROBOTS_DISTRO:-"robots-olfs-${OLFS_VERSION}-webapp"}
-RUN echo "ROBOTS_DISTRO: ${ROBOTS_DISTRO}"
-COPY ${ROBOTS_DISTRO}.tgz /${ROBOTS_DISTRO}.tgz
+# ARG OLFS_DISTRO
+# ENV OLFS_DISTRO=${OLFS_DISTRO:-"olfs-${OLFS_VERSION}-webapp"}
+# RUN echo "OLFS_DISTRO: ${OLFS_DISTRO}"
+# COPY ${OLFS_DISTRO}.tgz /${OLFS_DISTRO}.tgz
+
+# ARG ROBOTS_DISTRO
+# ENV ROBOTS_DISTRO=${ROBOTS_DISTRO:-"robots-olfs-${OLFS_VERSION}-webapp"}
+# RUN echo "ROBOTS_DISTRO: ${ROBOTS_DISTRO}"
+# COPY ${ROBOTS_DISTRO}.tgz /${ROBOTS_DISTRO}.tgz
ARG DEPLOYMENT_CONTEXT
ENV DEPLOYMENT_CONTEXT=${DEPLOYMENT_CONTEXT:-"opendap"}
From ac29a055f56447abbfd9d5b3cb96c5fbc06a1b65 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 22 Dec 2025 17:27:32 -0500
Subject: [PATCH 13/24] more fail
---
builds/hyrax/Dockerfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 3fc6d6ea..5c3c5b94 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -25,8 +25,8 @@ ARG TOMCAT_VERSION
ENV TOMCAT_VERSION=${TOMCAT_VERSION:-"9.0.64"}
RUN echo "TOMCAT_VERSION: ${TOMCAT_VERSION}"
ENV TOMCAT_DISTRO="apache-tomcat-${TOMCAT_VERSION}"
-COPY "${TOMCAT_DISTRO}.tar.gz" /
-RUN ls -l /apache-tomcat-* >&2
+# COPY "${TOMCAT_DISTRO}.tar.gz" /
+# RUN ls -l /apache-tomcat-* >&2
ARG HYRAX_VERSION
ENV HYRAX_VERSION=${HYRAX_VERSION:-"snapshot"}
From 3bfd7634f52354db8e2493b170b2e4594bb2106c Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Tue, 23 Dec 2025 10:36:07 -0500
Subject: [PATCH 14/24] fail fast - again
---
.travis.yml | 238 ++++++++++++++++++++++++++--------------------------
1 file changed, 119 insertions(+), 119 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index e45830d0..ea151318 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -138,129 +138,129 @@ jobs:
- echo "Running Test Script"
- ./regression_test_script -i ${SNAPSHOT_IMAGE_TAG}
- - stage: BUILD
- name: "Build opendap/besd:snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="besd"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot$TEST_DEPLOYMENT"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${BES_VERSION}$TEST_DEPLOYMENT"
- - show_version
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - docker build
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+ # - stage: BUILD
+ # name: "Build opendap/besd:snapshot (RH8)"
+ # script:
+ # - cd builds
+ # - export DOCKER_NAME="besd"
+ # - source ./build-rh8
+ # - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot$TEST_DEPLOYMENT"
+ # - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${BES_VERSION}$TEST_DEPLOYMENT"
+ # - show_version
+ # - s3_get_besd_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "el8"
+ # "${LIBDAP_VERSION}"
+ # "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+ # - docker build
+ # --build-arg RELEASE_DATE
+ # --build-arg HYRAX_VERSION
+ # --build-arg LIBDAP_VERSION
+ # --build-arg BES_VERSION
+ # --tag "${SNAPSHOT_IMAGE_TAG}"
+ # --tag "${BUILD_VERSION_TAG}"
+ # "${DOCKER_NAME}"
+ # - docker image ls -a
- - stage: BUILD
- name: "Build opendap/hyrax_ncwms:snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="hyrax"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}_ncwms:snapshot$TEST_DEPLOYMENT"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}_ncwms:${HYRAX_VERSION}$TEST_DEPLOYMENT"
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - s3_get_olfs_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --build-arg OLFS_VERSION
- --build-arg USE_NCWMS=true
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+ # - stage: BUILD
+ # name: "Build opendap/hyrax_ncwms:snapshot (RH8)"
+ # script:
+ # - cd builds
+ # - export DOCKER_NAME="hyrax"
+ # - source ./build-rh8
+ # - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}_ncwms:snapshot$TEST_DEPLOYMENT"
+ # - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}_ncwms:${HYRAX_VERSION}$TEST_DEPLOYMENT"
+ # - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+ # - show_version
+ # - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+ # - s3_get_besd_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "el8"
+ # "${LIBDAP_VERSION}"
+ # "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+ # - s3_get_olfs_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "${OLFS_VERSION}" 2>&1
+ # - docker build
+ # --build-arg TOMCAT_VERSION
+ # --build-arg RELEASE_DATE
+ # --build-arg HYRAX_VERSION
+ # --build-arg LIBDAP_VERSION
+ # --build-arg BES_VERSION
+ # --build-arg OLFS_VERSION
+ # --build-arg USE_NCWMS=true
+ # --tag "${SNAPSHOT_IMAGE_TAG}"
+ # --tag "${BUILD_VERSION_TAG}"
+ # "${DOCKER_NAME}"
+ # - docker image ls -a
- - stage: BUILD
- name: "Build opendap/hyrax:ngap-snapshot (RH8)"
- script:
- - cd builds
- - export DOCKER_NAME="ngap"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/hyrax:${DOCKER_NAME}-snapshot$TEST_DEPLOYMENT"
- - export BUILD_VERSION_TAG="opendap/hyrax:${DOCKER_NAME}-${HYRAX_VERSION}$TEST_DEPLOYMENT"
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_besd_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "el8"
- "${LIBDAP_VERSION}"
- "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
- - get_ngap_olfs_distro
- "${S3_BUILD_BUCKET}"
- "${DOCKER_NAME}"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg LIBDAP_VERSION
- --build-arg BES_VERSION
- --build-arg OLFS_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}"
- "${DOCKER_NAME}"
- - docker image ls -a
+ # - stage: BUILD
+ # name: "Build opendap/hyrax:ngap-snapshot (RH8)"
+ # script:
+ # - cd builds
+ # - export DOCKER_NAME="ngap"
+ # - source ./build-rh8
+ # - export SNAPSHOT_IMAGE_TAG="opendap/hyrax:${DOCKER_NAME}-snapshot$TEST_DEPLOYMENT"
+ # - export BUILD_VERSION_TAG="opendap/hyrax:${DOCKER_NAME}-${HYRAX_VERSION}$TEST_DEPLOYMENT"
+ # - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+ # - show_version
+ # - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+ # - s3_get_besd_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "el8"
+ # "${LIBDAP_VERSION}"
+ # "${BES_VERSION}" "${ADD_DEBUG_RPMS}" 2>&1
+ # - get_ngap_olfs_distro
+ # "${S3_BUILD_BUCKET}"
+ # "${DOCKER_NAME}"
+ # "${OLFS_VERSION}" 2>&1
+ # - docker build
+ # --build-arg TOMCAT_VERSION
+ # --build-arg RELEASE_DATE
+ # --build-arg HYRAX_VERSION
+ # --build-arg LIBDAP_VERSION
+ # --build-arg BES_VERSION
+ # --build-arg OLFS_VERSION
+ # --tag "${SNAPSHOT_IMAGE_TAG}"
+ # --tag "${BUILD_VERSION_TAG}"
+ # "${DOCKER_NAME}"
+ # - docker image ls -a
- - stage: BUILD
- name: "Build opendap/olfs:snapshot"
- script:
- - cd builds
- - export DOCKER_NAME="olfs"
- - source ./build-rh8
- - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot$TEST_DEPLOYMENT"
- - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${OLFS_VERSION}$TEST_DEPLOYMENT"
- - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
- - show_version
- - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
- - s3_get_olfs_distro
- "${S3_BUILD_BUCKET}"
- "olfs"
- "${OLFS_VERSION}" 2>&1
- - docker build
- --build-arg TOMCAT_VERSION
- --build-arg RELEASE_DATE
- --build-arg HYRAX_VERSION
- --build-arg OLFS_VERSION
- --tag "${SNAPSHOT_IMAGE_TAG}"
- --tag "${BUILD_VERSION_TAG}" olfs
- - docker image ls -a
+ # - stage: BUILD
+ # name: "Build opendap/olfs:snapshot"
+ # script:
+ # - cd builds
+ # - export DOCKER_NAME="olfs"
+ # - source ./build-rh8
+ # - export SNAPSHOT_IMAGE_TAG="opendap/${DOCKER_NAME}:snapshot$TEST_DEPLOYMENT"
+ # - export BUILD_VERSION_TAG="opendap/${DOCKER_NAME}:${OLFS_VERSION}$TEST_DEPLOYMENT"
+ # - export TOMCAT_VERSION=$(get_latest_tomcat_version_number "${TOMCAT_MAJOR_VERSION}")
+ # - show_version
+ # - get_tomcat_distro "${DOCKER_NAME}" "${TOMCAT_VERSION}"
+ # - s3_get_olfs_distro
+ # "${S3_BUILD_BUCKET}"
+ # "olfs"
+ # "${OLFS_VERSION}" 2>&1
+ # - docker build
+ # --build-arg TOMCAT_VERSION
+ # --build-arg RELEASE_DATE
+ # --build-arg HYRAX_VERSION
+ # --build-arg OLFS_VERSION
+ # --tag "${SNAPSHOT_IMAGE_TAG}"
+ # --tag "${BUILD_VERSION_TAG}" olfs
+ # - docker image ls -a
- - stage: TEST_DEPLOYED_IMAGE
- name: "Test Deployed Image (RH8)"
- script:
- - export TEST_IMAGE="opendap/hyrax:${HYRAX_VERSION}$TEST_DEPLOYMENT"
- - echo "Running Hyrax Regression Test Script on ${TEST_IMAGE}"
- - ./regression_test_script -i "${TEST_IMAGE}"
- - export DEPLOY_ME="false"
+ # - stage: TEST_DEPLOYED_IMAGE
+ # name: "Test Deployed Image (RH8)"
+ # script:
+ # - export TEST_IMAGE="opendap/hyrax:${HYRAX_VERSION}$TEST_DEPLOYMENT"
+ # - echo "Running Hyrax Regression Test Script on ${TEST_IMAGE}"
+ # - ./regression_test_script -i "${TEST_IMAGE}"
+ # - export DEPLOY_ME="false"
# before_deploy:
# - export DOCKER_LOGIN=`aws ecr get-login --region us-east-1 | sed "s/-e none //g"`;
From d39500355d1c42d873c1b6176bc3894c4bba8464 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Fri, 2 Jan 2026 22:16:05 +0000
Subject: [PATCH 15/24] wip copy rpm install behavior, permissions not yet
correct
---
builds/hyrax/Dockerfile | 397 ++++++++++++++++++----------------
builds/hyrax/entrypoint.sh | 4 +-
travis/regression_test_script | 2 +-
3 files changed, 214 insertions(+), 189 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 5c3c5b94..72dcf939 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -13,8 +13,12 @@
# it for debugging stuff.
#
# Set one or more individual labels
+
+# Add a default base image to keep docker from complaining,
+# which is fine because if this ISN'T based on a given image tag,
+# everything downstream will fail due to lack of bes, libdap, etc.
ARG BES_IMAGE_TAG
-FROM ${BES_IMAGE_TAG}
+FROM ${BES_IMAGE_TAG:-"rockylinux:8"}
ENV NOW="$(`date +%s`)"
ARG RELEASE_DATE
@@ -25,8 +29,8 @@ ARG TOMCAT_VERSION
ENV TOMCAT_VERSION=${TOMCAT_VERSION:-"9.0.64"}
RUN echo "TOMCAT_VERSION: ${TOMCAT_VERSION}"
ENV TOMCAT_DISTRO="apache-tomcat-${TOMCAT_VERSION}"
-# COPY "${TOMCAT_DISTRO}.tar.gz" /
-# RUN ls -l /apache-tomcat-* >&2
+COPY "${TOMCAT_DISTRO}.tar.gz" /
+RUN ls -l /apache-tomcat-* >&2
ARG HYRAX_VERSION
ENV HYRAX_VERSION=${HYRAX_VERSION:-"snapshot"}
@@ -47,15 +51,15 @@ ARG OLFS_VERSION
ENV OLFS_VERSION=${OLFS_VERSION:-"snapshot"}
RUN echo "OLFS_VERSION: ${OLFS_VERSION}"
-# ARG OLFS_DISTRO
-# ENV OLFS_DISTRO=${OLFS_DISTRO:-"olfs-${OLFS_VERSION}-webapp"}
-# RUN echo "OLFS_DISTRO: ${OLFS_DISTRO}"
-# COPY ${OLFS_DISTRO}.tgz /${OLFS_DISTRO}.tgz
+ARG OLFS_DISTRO
+ENV OLFS_DISTRO=${OLFS_DISTRO:-"olfs-${OLFS_VERSION}-webapp"}
+RUN echo "OLFS_DISTRO: ${OLFS_DISTRO}"
+COPY ${OLFS_DISTRO}.tgz /${OLFS_DISTRO}.tgz
-# ARG ROBOTS_DISTRO
-# ENV ROBOTS_DISTRO=${ROBOTS_DISTRO:-"robots-olfs-${OLFS_VERSION}-webapp"}
-# RUN echo "ROBOTS_DISTRO: ${ROBOTS_DISTRO}"
-# COPY ${ROBOTS_DISTRO}.tgz /${ROBOTS_DISTRO}.tgz
+ARG ROBOTS_DISTRO
+ENV ROBOTS_DISTRO=${ROBOTS_DISTRO:-"robots-olfs-${OLFS_VERSION}-webapp"}
+RUN echo "ROBOTS_DISTRO: ${ROBOTS_DISTRO}"
+COPY ${ROBOTS_DISTRO}.tgz /${ROBOTS_DISTRO}.tgz
ARG DEPLOYMENT_CONTEXT
ENV DEPLOYMENT_CONTEXT=${DEPLOYMENT_CONTEXT:-"opendap"}
@@ -103,7 +107,7 @@ RUN if [ $DEVELOPER_MODE = "true" ];then echo "DEVELOPER_MODE: ENABLED"; else ec
# are installed in the container but not run until a later stage of the
# Travis build (or at a later time). They need to be part of the container,
# however, to be run, so install them as part of this Dockerfile.
-RUN set -e && dnf update -y
+# RUN set -e && dnf update -y
RUN set -e && dnf install -y python3.11 \
&& python3 --version
@@ -128,185 +132,206 @@ RUN set -e && which diff
RUN echo "besdaemon is here: "`which besdaemon`
-# Instead of rpm pre:
+# Add bes group and user (previously constructed via rpm installation)
RUN getent group bes >/dev/null || groupadd -r bes
RUN getent passwd bes >/dev/null || \
useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
-# Instead of rpm post: #TODO-maybe: cd into bes dir first??
-RUN chkconfig --add besd
-
-# ################################################################
-# # Install and Setup Tomcat
-# #
-# # Make tomcat user and group
-# # - - - - - - - - - - - - - - - - - - - - -
-# RUN set -e && useradd -m -U -d /home/tomcat -s /bin/false tomcat
-# #
-# # Install the Tomcat package that should have been copied into
-# # the root directory prior to this layer.
-# #
-# RUN set -e \
-# && tar -xvf "/${TOMCAT_DISTRO}.tar.gz" -C /home/tomcat >&2 \
-# && ln -s /home/tomcat/${TOMCAT_DISTRO} /usr/share/tomcat >&2 \
-# && ln -s /home/tomcat/${TOMCAT_DISTRO} /tomcat >&2 \
-# && rm -rvf /usr/share/tomcat/webapps/* >&2 \
-# && mkdir -p /var/log/tomcat \
-# && chown -R tomcat:tomcat /var/log/tomcat /home/tomcat
-# COPY tomcat.service /etc/systemd/system/tomcat.service
-# RUN set -e && systemctl enable tomcat
-# #RUN firewall-cmd --add-port 8080/tcp --permanent
-# #RUN firewall-cmd --reload
-
-# ENV CATALINA_HOME=/usr/share/tomcat
-# ENV PATH=$CATALINA_HOME/bin:$PATH
-# RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
-
-# # Install our modified server.xml so that the server compresses responses.
-# COPY tomcat9-server.xml /
-# RUN set -e \
-# && mv /tomcat9-server.xml ${CATALINA_HOME}/conf/server.xml \
-# && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml
-
-# RUN set -e \
-# && echo "Cleaning up Tomcat distribution files..." >&2 \
-# && rm -fv "/${TOMCAT_DISTRO}.tar.gz"
-
-# ################################################################
-# # Install the OLFS web application
-# # - - - - - - - - - - - - - - - - - - - - -
-# ENV ROOT=/dev/shm
-
-# RUN echo "Installing the latest olfs distribution (${OLFS_VERSION})." >&2
-# RUN set -e \
-# && echo "working_dir: "`pwd` >&2 \
-# && ls -l . \
-# && tar -C ${ROOT} -xzvf ./${OLFS_DISTRO}.tgz \
-# && ls -l ${ROOT} \
-# && echo "Unpacking warfile..." >&2 \
-# && mkdir -p $(readlink -f ${CATALINA_HOME})/webapps/${DEPLOYMENT_CONTEXT}/ \
-# && unzip -o ${ROOT}/${OLFS_DISTRO}/opendap.war -d ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/ \
-# && echo "Cleaning up." >&2 \
-# && rm -rf ${ROOT}/${OLFS_DISTRO} ./${OLFS_DISTRO}.tgz
-
-# RUN set -e \
-# && echo "Installing the latest dynamic robots.txt distribution (${OLFS_VERSION})." >&2 \
-# && ls -l ./robots* \
-# && tar -C ${ROOT} -xzf ./${ROBOTS_DISTRO}.tgz \
-# && ls -l ${ROOT}/${ROBOTS_DISTRO} \
-# && echo "Unpacking dynamic robots.txt warfile..." >&2 \
-# && unzip -o ${ROOT}/${ROBOTS_DISTRO}/ROOT.war -d ${CATALINA_HOME}/webapps/ROOT/ \
-# && echo "Cleaning up dynamic robots.txt snapshot..." >&2 \
-# && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz
-
-# # Fix ownership and access permissions
-# RUN set -e \
-# && mkdir -p ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
-# && chown -R tomcat:tomcat ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
-# && chmod 700 ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs
-
-# ################################################################
-# # Clean up the Hyrax distribution binaries.
-# #
-# RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
-# #
-# ################################################################
-
-# ################################################################
-# # retrieve and install the ncWMS web application
-# # - - - - - - - - - - - - - - - - - - - - -
-
-# ARG NCWMS_VERSION
-# ENV NCWMS_VERSION=${NCWMS_VERSION:-"2.5.2"}
-# RUN echo "NCWMS_VERSION: ${NCWMS_VERSION}"
-# ENV NCWMS_WAR_URL="https://github.com/Reading-eScience-Centre/ncwms/releases/download/ncwms-${NCWMS_VERSION}/ncWMS2.war"
-# RUN echo "NCWMS_WAR_URL: ${NCWMS_WAR_URL}"
-
-# RUN if [ $USE_NCWMS = "true" ]; then \
-# echo "Installing ncWMS..."; \
-# curl -sfSL ${NCWMS_WAR_URL} -o /dev/shm/ncWMS.war; \
-# unzip -o /dev/shm/ncWMS.war -d ${CATALINA_HOME}/webapps/ncWMS2/; \
-# rm -rf /dev/shm/*; \
-# else \
-# echo "ncWMS will NOT be installed."; \
-# fi
-
-# # set a default ncWMS admin if DEVELOPER_MODE is enabled.
-# RUN if [ ${DEVELOPER_MODE} = "true" ] && [ $USE_NCWMS = "true" ]; then \
-# echo "DEVELOPER MODE: Adding ncWMS admin credentials"; \
-# sed -i 'sXX X' ${CATALINA_HOME}/conf/tomcat-users.xml; \
-# else \
-# echo "No ncWMS admin credentials installed."; \
-# fi
+# Instead of rpm post:
+RUN cp ./usr/local/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd
+RUN chkconfig --add besd \
+ && ldconfig
+
+# More rpm-adapting hijinks
+# Adapted from bes/spec.all_static.in
+# Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
+RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
+ -e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
+ -e 's:=.*/lib/bes:=/usr/lib/bes:' \
+ -e 's:=.*/share/bes:=/usr/share/bes:' \
+ -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
+ -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+ -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+ -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+ -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+ -e 's:=user_name:=bes:' \
+ -e 's:=group_name:=bes:' \
+ /usr/local/etc/bes/bes.conf
+
+RUN chown -R bes /usr/local/etc/bes \
+ /usr/local/share/bes \
+ /usr/local/include/bes \
+ /usr/local/lib/bes \
+ /usr/local/var/run/bes
+
+################################################################
+# Install and Setup Tomcat
+#
+# Make tomcat user and group
+# - - - - - - - - - - - - - - - - - - - - -
+RUN set -e && useradd -m -U -d /home/tomcat -s /bin/false tomcat
+#
+# Install the Tomcat package that should have been copied into
+# the root directory prior to this layer.
+#
+RUN set -e \
+ && tar -xvf "/${TOMCAT_DISTRO}.tar.gz" -C /home/tomcat >&2 \
+ && ln -s /home/tomcat/${TOMCAT_DISTRO} /usr/share/tomcat >&2 \
+ && ln -s /home/tomcat/${TOMCAT_DISTRO} /tomcat >&2 \
+ && rm -rvf /usr/share/tomcat/webapps/* >&2 \
+ && mkdir -p /var/log/tomcat \
+ && chown -R tomcat:tomcat /var/log/tomcat /home/tomcat
+COPY tomcat.service /etc/systemd/system/tomcat.service
+RUN set -e && systemctl enable tomcat
+#RUN firewall-cmd --add-port 8080/tcp --permanent
+#RUN firewall-cmd --reload
+
+ENV CATALINA_HOME=/usr/share/tomcat
+ENV PATH=$CATALINA_HOME/bin:$PATH
+RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
+
+# Install our modified server.xml so that the server compresses responses.
+COPY tomcat9-server.xml /
+RUN set -e \
+ && mv /tomcat9-server.xml ${CATALINA_HOME}/conf/server.xml \
+ && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml
+
+RUN set -e \
+ && echo "Cleaning up Tomcat distribution files..." >&2 \
+ && rm -fv "/${TOMCAT_DISTRO}.tar.gz"
+
+################################################################
+# Install the OLFS web application
+# - - - - - - - - - - - - - - - - - - - - -
+ENV ROOT=/dev/shm
+
+RUN echo "Installing the latest olfs distribution (${OLFS_VERSION})." >&2
+RUN set -e \
+ && echo "working_dir: "`pwd` >&2 \
+ && ls -l . \
+ && tar -C ${ROOT} -xzvf ./${OLFS_DISTRO}.tgz \
+ && ls -l ${ROOT} \
+ && echo "Unpacking warfile..." >&2 \
+ && mkdir -p $(readlink -f ${CATALINA_HOME})/webapps/${DEPLOYMENT_CONTEXT}/ \
+ && unzip -o ${ROOT}/${OLFS_DISTRO}/opendap.war -d ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/ \
+ && echo "Cleaning up." >&2 \
+ && rm -rf ${ROOT}/${OLFS_DISTRO} ./${OLFS_DISTRO}.tgz
+
+RUN set -e \
+ && echo "Installing the latest dynamic robots.txt distribution (${OLFS_VERSION})." >&2 \
+ && ls -l ./robots* \
+ && tar -C ${ROOT} -xzf ./${ROBOTS_DISTRO}.tgz \
+ && ls -l ${ROOT}/${ROBOTS_DISTRO} \
+ && echo "Unpacking dynamic robots.txt warfile..." >&2 \
+ && unzip -o ${ROOT}/${ROBOTS_DISTRO}/ROOT.war -d ${CATALINA_HOME}/webapps/ROOT/ \
+ && echo "Cleaning up dynamic robots.txt snapshot..." >&2 \
+ && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz
+
+# Fix ownership and access permissions
+RUN set -e \
+ && mkdir -p ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
+ && chown -R tomcat:tomcat ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
+ && chmod 700 ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs
+
+################################################################
+# Clean up the Hyrax distribution binaries.
+#
+RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
+#
+################################################################
+
+################################################################
+# retrieve and install the ncWMS web application
+# - - - - - - - - - - - - - - - - - - - - -
+
+ARG NCWMS_VERSION
+ENV NCWMS_VERSION=${NCWMS_VERSION:-"2.5.2"}
+RUN echo "NCWMS_VERSION: ${NCWMS_VERSION}"
+ENV NCWMS_WAR_URL="https://github.com/Reading-eScience-Centre/ncwms/releases/download/ncwms-${NCWMS_VERSION}/ncWMS2.war"
+RUN echo "NCWMS_WAR_URL: ${NCWMS_WAR_URL}"
+
+RUN if [ $USE_NCWMS = "true" ]; then \
+ echo "Installing ncWMS..."; \
+ curl -sfSL ${NCWMS_WAR_URL} -o /dev/shm/ncWMS.war; \
+ unzip -o /dev/shm/ncWMS.war -d ${CATALINA_HOME}/webapps/ncWMS2/; \
+ rm -rf /dev/shm/*; \
+ else \
+ echo "ncWMS will NOT be installed."; \
+ fi
+
+# set a default ncWMS admin if DEVELOPER_MODE is enabled.
+RUN if [ ${DEVELOPER_MODE} = "true" ] && [ $USE_NCWMS = "true" ]; then \
+ echo "DEVELOPER MODE: Adding ncWMS admin credentials"; \
+ sed -i 'sXX X' ${CATALINA_HOME}/conf/tomcat-users.xml; \
+ else \
+ echo "No ncWMS admin credentials installed."; \
+ fi
-# #
-# # make ncWMS work without further configuration
-# # We will need to adjust this target if we
-# # decide to run as a different (not root) user.
-# COPY ncWMS_config.xml /root/.ncWMS2/config.xml
-# RUN chmod +r /root/.ncWMS2/config.xml
-
-# COPY olfs_viewers.xml /tmp/olfs_viewers.xml
-# RUN if [ $USE_NCWMS = "true" ]; then \
-# # If we're installing ncWMS then we copy
-# # to the server a viewers.xml which has
-# # been templated so that the ncWMS host can be installed
-# # at startup.
-# mv /tmp/olfs_viewers.xml ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/viewers.xml; \
-# else \
-# echo "Skipping OLFS/ncWMS confguration installation."; \
-# fi
-
-# ################################################################
-# #
-# # Retrieve, verify, and install the hyrax_regression_tests
-# # project
-# #
-# # - - - - - - - - - - - - - - - - - - - - -
-# ENV TEST_INSTALL_DIR="/hyrax_regression_tests"
-# RUN set -e \
-# && echo "Retrieving, and building hyrax regression tests." \
-# && echo "h_r_t will be in: ${TEST_INSTALL_DIR}" \
-# && mkdir -p ${TEST_INSTALL_DIR} \
-# && git clone -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
-# && cd ${TEST_INSTALL_DIR} \
-# && autoreconf -vif \
-# && ./configure
-
-# # In order to get the executable "testsuite" to build we have to run
-# # "make check" But that will fail at build time so the "make check" call
-# # ends up pretty tortured to avoid a build error.
-# RUN set -e \
-# && cd ${TEST_INSTALL_DIR} \
-# && make testsuite > mk.log 2>&1 \
-# && echo "SUCCESS: hyrax_regression_tests ready!"
-# ################################################################
-
-# RUN ls -l /usr/libexec/
-
-# ################################################################
-# # TEMPORARY
-# # Grab the cleanup files script for managing orphaned files
-# # from fileout_netcdf
-# COPY cleanup_files.sh /
-# RUN chmod +x /cleanup_files.sh
-# # TEMPORARY
-# ################################################################
-
-
-# COPY entrypoint.sh /
-# RUN chmod +x /entrypoint.sh
-# # ENTRYPOINT [ "/entrypoint.sh" ]
-
-# EXPOSE 8009
-# EXPOSE 8080
-# EXPOSE 8443
-# EXPOSE 10022
-# EXPOSE 11002
-
-# can't use USER with entrypoint that needs root
-# use gosu or, as done, enable bes user write so the entrypoint does not need root
-RUN chown -R bes /etc/bes
+#
+# make ncWMS work without further configuration
+# We will need to adjust this target if we
+# decide to run as a different (not root) user.
+COPY ncWMS_config.xml /root/.ncWMS2/config.xml
+RUN chmod +r /root/.ncWMS2/config.xml
+
+COPY olfs_viewers.xml /tmp/olfs_viewers.xml
+RUN if [ $USE_NCWMS = "true" ]; then \
+ # If we're installing ncWMS then we copy
+ # to the server a viewers.xml which has
+ # been templated so that the ncWMS host can be installed
+ # at startup.
+ mv /tmp/olfs_viewers.xml ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/viewers.xml; \
+ else \
+ echo "Skipping OLFS/ncWMS confguration installation."; \
+ fi
+
+################################################################
+#
+# Retrieve, verify, and install the hyrax_regression_tests
+# project
+#
+# - - - - - - - - - - - - - - - - - - - - -
+ENV TEST_INSTALL_DIR="/hyrax_regression_tests"
+RUN set -e \
+ && echo "Retrieving, and building hyrax regression tests." \
+ && echo "h_r_t will be in: ${TEST_INSTALL_DIR}" \
+ && mkdir -p ${TEST_INSTALL_DIR} \
+ && git clone -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
+ && cd ${TEST_INSTALL_DIR} \
+ && autoreconf -vif \
+ && ./configure
+
+# In order to get the executable "testsuite" to build we have to run
+# "make check" But that will fail at build time so the "make check" call
+# ends up pretty tortured to avoid a build error.
+RUN set -e \
+ && cd ${TEST_INSTALL_DIR} \
+ && make testsuite > mk.log 2>&1 \
+ && echo "SUCCESS: hyrax_regression_tests ready!"
+################################################################
+
+RUN ls -l /usr/libexec/
+
+################################################################
+# TEMPORARY
+# Grab the cleanup files script for managing orphaned files
+# from fileout_netcdf
+COPY cleanup_files.sh /
+RUN chmod +x /cleanup_files.sh
+# TEMPORARY
+################################################################
+
+
+COPY entrypoint.sh /
+RUN chmod +x /entrypoint.sh
+ENTRYPOINT [ "/entrypoint.sh" ]
+
+EXPOSE 8009
+EXPOSE 8080
+EXPOSE 8443
+EXPOSE 10022
+EXPOSE 11002
+
USER root
CMD ["-"]
diff --git a/builds/hyrax/entrypoint.sh b/builds/hyrax/entrypoint.sh
index 897a0523..73f5094e 100755
--- a/builds/hyrax/entrypoint.sh
+++ b/builds/hyrax/entrypoint.sh
@@ -127,7 +127,7 @@ if test "${SERVER_HELP_EMAIL}" != "not_set" ; then
fi
if test "${FOLLOW_SYMLINKS}" != "not_set" ; then
echo "Setting BES FollowSymLinks to YES." >&2
- sed -i "s/^BES.Catalog.catalog.FollowSymLinks=No/BES.Catalog.catalog.FollowSymLinks=Yes/" /etc/bes/bes.conf
+ sed -i "s/^BES.Catalog.catalog.FollowSymLinks=No/BES.Catalog.catalog.FollowSymLinks=Yes/" usr/local/etc/bes/bes.conf
fi
echo "JAVA VERSION: "
@@ -149,7 +149,7 @@ bes_gid=$(id -g bes)
echo "bes_gid: ${bes_gid}" >&2
echo "Launching besd..." >&2
-/usr/bin/besctl start
+/usr/local/bin/besctl start
status=$?
if test $status -ne 0 ; then
echo "ERROR: Failed to start BES: $status" >&2
diff --git a/travis/regression_test_script b/travis/regression_test_script
index 9dcdff65..3348221c 100755
--- a/travis/regression_test_script
+++ b/travis/regression_test_script
@@ -3,7 +3,7 @@ set -e
echo "Starting up ..."
default_time_out=30
-default_image_name="opendap/hyrax:snapshot"
+default_image_name="opendap/hyrax:snapshot-new"
default_endpoint="http://localhost:8080/opendap"
time_out="${default_time_out}"
From 49fc3a2fc0a4e9410e10eb6f4a680681b8e3fd71 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 26 Jan 2026 23:54:49 +0000
Subject: [PATCH 16/24] comment stuff out
---
builds/hyrax/Dockerfile | 68 +++++++++++++++++++++--------------------
1 file changed, 35 insertions(+), 33 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 72dcf939..38ad8d0f 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -108,8 +108,9 @@ RUN if [ $DEVELOPER_MODE = "true" ];then echo "DEVELOPER_MODE: ENABLED"; else ec
# Travis build (or at a later time). They need to be part of the container,
# however, to be run, so install them as part of this Dockerfile.
# RUN set -e && dnf update -y
+#TODO: prob don't need reinstallpython3.11 here, can use existing 3.12 in image
RUN set -e && dnf install -y python3.11 \
- && python3 --version
+ && python3 --version
RUN set -e && dnf install -y make curl unzip which autoconf automake emacs vim jq \
&& dnf install -y diffutils \
@@ -131,38 +132,39 @@ RUN set -e && which diff
# be handled by RPM installation
RUN echo "besdaemon is here: "`which besdaemon`
-
-# Add bes group and user (previously constructed via rpm installation)
-RUN getent group bes >/dev/null || groupadd -r bes
-RUN getent passwd bes >/dev/null || \
- useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
-
-# Instead of rpm post:
-RUN cp ./usr/local/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd
-RUN chkconfig --add besd \
- && ldconfig
-
-# More rpm-adapting hijinks
-# Adapted from bes/spec.all_static.in
-# Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
-RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
- -e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
- -e 's:=.*/lib/bes:=/usr/lib/bes:' \
- -e 's:=.*/share/bes:=/usr/share/bes:' \
- -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
- -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
- -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
- -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
- -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
- -e 's:=user_name:=bes:' \
- -e 's:=group_name:=bes:' \
- /usr/local/etc/bes/bes.conf
-
-RUN chown -R bes /usr/local/etc/bes \
- /usr/local/share/bes \
- /usr/local/include/bes \
- /usr/local/lib/bes \
- /usr/local/var/run/bes
+RUN echo "chkconfig --list" | grep "besd"
+
+# # Add bes group and user (previously constructed via rpm installation)
+# RUN getent group bes >/dev/null || groupadd -r bes
+# RUN getent passwd bes >/dev/null || \
+# useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
+
+# # Instead of rpm post:
+# RUN cp ./usr/local/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd
+# RUN chkconfig --add besd \
+# && ldconfig
+
+# # More rpm-adapting hijinks
+# # Adapted from bes/spec.all_static.in
+# # Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
+# RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
+# -e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
+# -e 's:=.*/lib/bes:=/usr/lib/bes:' \
+# -e 's:=.*/share/bes:=/usr/share/bes:' \
+# -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
+# -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+# -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+# -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+# -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+# -e 's:=user_name:=bes:' \
+# -e 's:=group_name:=bes:' \
+# /usr/local/etc/bes/bes.conf
+
+# RUN chown -R bes /usr/local/etc/bes \
+# /usr/local/share/bes \
+# /usr/local/include/bes \
+# /usr/local/lib/bes \
+# /usr/local/var/run/bes
################################################################
# Install and Setup Tomcat
From 7383535a20495dc36868dd833c108bd70f74c8b7 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Tue, 27 Jan 2026 23:57:24 +0000
Subject: [PATCH 17/24] wip build from new rhel-bes image
---
builds/hyrax/Dockerfile | 62 ++++++++++++++++++++------------------
builds/hyrax/entrypoint.sh | 7 +++--
2 files changed, 36 insertions(+), 33 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 38ad8d0f..7b59ed00 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -73,6 +73,7 @@ LABEL org.opendap.hyrax.version.is-production="false"
LABEL maintainer=support@opendap.org
USER root
+WORKDIR /
#
# The --build-arg USE_NCWMS can be set to "true" in order to
@@ -131,8 +132,15 @@ RUN set -e && which diff
# we need to do some final installation steps that would otherwise
# be handled by RPM installation
-RUN echo "besdaemon is here: "`which besdaemon`
-RUN echo "chkconfig --list" | grep "besd"
+RUN echo "besdaemon is here: "`which besdaemon` \
+ && echo "whoami: "`whoami`
+
+# Add besd service to start at boot
+RUN cp ${PREFIX}/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd \
+ && chkconfig --add besd \
+ && ldconfig
+RUN chkconfig --list | grep besd \
+ && echo "whoami: "`whoami`
# # Add bes group and user (previously constructed via rpm installation)
# RUN getent group bes >/dev/null || groupadd -r bes
@@ -144,21 +152,22 @@ RUN echo "chkconfig --list" | grep "besd"
# RUN chkconfig --add besd \
# && ldconfig
-# # More rpm-adapting hijinks
-# # Adapted from bes/spec.all_static.in
-# # Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
-# RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
-# -e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
-# -e 's:=.*/lib/bes:=/usr/lib/bes:' \
-# -e 's:=.*/share/bes:=/usr/share/bes:' \
-# -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
-# -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
-# -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
-# -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
-# -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
-# -e 's:=user_name:=bes:' \
-# -e 's:=group_name:=bes:' \
-# /usr/local/etc/bes/bes.conf
+# More rpm-adapting hijinks
+# Adapted from bes/spec.all_static.in
+# Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
+RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
+ -e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
+ -e 's:=.*/lib/bes:=$PREFIX/lib/bes:' \
+ -e 's:=.*/share/bes:=$PREFIX/share/bes:' \
+ # -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
+ # -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+ # -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+ # -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
+ # -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
+ -e 's:=user_name:='"$BES_USER"':' \
+ -e 's:=group_name:='"$BES_USER"':' \
+ $PREFIX/etc/bes/bes.conf \
+ && mkdir -p "/var/log/bes/"
# RUN chown -R bes /usr/local/etc/bes \
# /usr/local/share/bes \
@@ -196,9 +205,7 @@ RUN set -e && echo "CATALINA_HOME: ${CATALINA_HOME}" >&2
COPY tomcat9-server.xml /
RUN set -e \
&& mv /tomcat9-server.xml ${CATALINA_HOME}/conf/server.xml \
- && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml
-
-RUN set -e \
+ && chown -R tomcat:tomcat ${CATALINA_HOME}/conf/server.xml \
&& echo "Cleaning up Tomcat distribution files..." >&2 \
&& rm -fv "/${TOMCAT_DISTRO}.tar.gz"
@@ -211,7 +218,7 @@ RUN echo "Installing the latest olfs distribution (${OLFS_VERSION})." >&2
RUN set -e \
&& echo "working_dir: "`pwd` >&2 \
&& ls -l . \
- && tar -C ${ROOT} -xzvf ./${OLFS_DISTRO}.tgz \
+ && tar -C ${ROOT} -xzvf /${OLFS_DISTRO}.tgz \
&& ls -l ${ROOT} \
&& echo "Unpacking warfile..." >&2 \
&& mkdir -p $(readlink -f ${CATALINA_HOME})/webapps/${DEPLOYMENT_CONTEXT}/ \
@@ -227,7 +234,9 @@ RUN set -e \
&& echo "Unpacking dynamic robots.txt warfile..." >&2 \
&& unzip -o ${ROOT}/${ROBOTS_DISTRO}/ROOT.war -d ${CATALINA_HOME}/webapps/ROOT/ \
&& echo "Cleaning up dynamic robots.txt snapshot..." >&2 \
- && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz
+ && rm -rf ${ROOT}/${ROBOTS_DISTRO} ${ROBOTS_DISTRO}.tgz \
+ && echo "Cleaning up the Hyrax distribution binaries..." \
+ && rm -vf /olfs*.tgz /robots*.tgz /apache*
# Fix ownership and access permissions
RUN set -e \
@@ -235,13 +244,6 @@ RUN set -e \
&& chown -R tomcat:tomcat ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs \
&& chmod 700 ${CATALINA_HOME}/webapps/${DEPLOYMENT_CONTEXT}/WEB-INF/conf/logs
-################################################################
-# Clean up the Hyrax distribution binaries.
-#
-RUN rm -vf /olfs*.tgz /robots*.tgz /apache*
-#
-################################################################
-
################################################################
# retrieve and install the ncWMS web application
# - - - - - - - - - - - - - - - - - - - - -
@@ -326,7 +328,7 @@ RUN chmod +x /cleanup_files.sh
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
-ENTRYPOINT [ "/entrypoint.sh" ]
+# ENTRYPOINT [ "/entrypoint.sh" ]
EXPOSE 8009
EXPOSE 8080
diff --git a/builds/hyrax/entrypoint.sh b/builds/hyrax/entrypoint.sh
index 73f5094e..84e7521c 100755
--- a/builds/hyrax/entrypoint.sh
+++ b/builds/hyrax/entrypoint.sh
@@ -143,13 +143,14 @@ echo "PythonVersion: "$(python3 --version)
#-------------------------------------------------------------------------------
# Start the BES daemon process
# /usr/bin/besdaemon -i /usr -c /etc/bes/bes.conf -r /var/run/bes.pid
-bes_uid=$(id -u bes)
+bes_username=bes_user # As set in bes dockerfile; TODO make it bes again??
+bes_uid=$(id -u ${bes_username}) #TODO: can hardcode to 101 if we want...
echo "bes_uid: ${bes_uid}" >&2
-bes_gid=$(id -g bes)
+bes_gid=$(id -g ${bes_username}) # TODO: do we hardcode this in the docker image? we maybe should.
echo "bes_gid: ${bes_gid}" >&2
echo "Launching besd..." >&2
-/usr/local/bin/besctl start
+$PREFIX/bin/besctl start # TODO: do we want to install this in root in bes docker image? maybe...
status=$?
if test $status -ne 0 ; then
echo "ERROR: Failed to start BES: $status" >&2
From 6bd198401b03c1d50a923a006673d511bf994cd6 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Wed, 28 Jan 2026 15:40:34 +0000
Subject: [PATCH 18/24] Get besctl running
---
builds/hyrax/Dockerfile | 9 +++++----
builds/hyrax/entrypoint.sh | 4 ++--
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 7b59ed00..c5143075 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -164,10 +164,11 @@ RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
# -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
# -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
# -e 's:=/full/path/to/clientside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
- -e 's:=user_name:='"$BES_USER"':' \
- -e 's:=group_name:='"$BES_USER"':' \
+ -e 's:=user_name:='"$USER"':' \
+ -e 's:=group_name:='"$USER"':' \
$PREFIX/etc/bes/bes.conf \
- && mkdir -p "/var/log/bes/"
+ && mkdir -p "/var/log/bes/" \
+ && sudo chown -R $USER:$USER "/var/log/bes/"
# RUN chown -R bes /usr/local/etc/bes \
# /usr/local/share/bes \
@@ -328,7 +329,7 @@ RUN chmod +x /cleanup_files.sh
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
-# ENTRYPOINT [ "/entrypoint.sh" ]
+ENTRYPOINT [ "/entrypoint.sh" ]
EXPOSE 8009
EXPOSE 8080
diff --git a/builds/hyrax/entrypoint.sh b/builds/hyrax/entrypoint.sh
index 84e7521c..e9014137 100755
--- a/builds/hyrax/entrypoint.sh
+++ b/builds/hyrax/entrypoint.sh
@@ -143,7 +143,7 @@ echo "PythonVersion: "$(python3 --version)
#-------------------------------------------------------------------------------
# Start the BES daemon process
# /usr/bin/besdaemon -i /usr -c /etc/bes/bes.conf -r /var/run/bes.pid
-bes_username=bes_user # As set in bes dockerfile; TODO make it bes again??
+bes_username=$USER # As set in bes dockerfile; TODO make it bes again??
bes_uid=$(id -u ${bes_username}) #TODO: can hardcode to 101 if we want...
echo "bes_uid: ${bes_uid}" >&2
bes_gid=$(id -g ${bes_username}) # TODO: do we hardcode this in the docker image? we maybe should.
@@ -156,7 +156,7 @@ if test $status -ne 0 ; then
echo "ERROR: Failed to start BES: $status" >&2
exit $status
fi
-besd_pid=`ps aux | grep /usr/bin/besdaemon | grep -v grep | awk '{print $2;}' - `
+besd_pid=`ps aux | grep $PREFIX/bin/besdaemon | grep -v grep | awk '{print $2;}' - `
echo "The besd is UP! [pid: ${besd_pid}]" >&2
#-------------------------------------------------------------------------------
From 295db23c624633662f361491e9da4d3f35e74367 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Wed, 28 Jan 2026 19:33:29 +0000
Subject: [PATCH 19/24] update conf replacement
---
builds/hyrax/Dockerfile | 2 +-
builds/hyrax/entrypoint.sh | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index c5143075..60fc0f0a 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -301,7 +301,7 @@ RUN set -e \
&& echo "Retrieving, and building hyrax regression tests." \
&& echo "h_r_t will be in: ${TEST_INSTALL_DIR}" \
&& mkdir -p ${TEST_INSTALL_DIR} \
- && git clone -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
+ && git clone --depth 1 -v https://github.com/opendap/hyrax_regression_tests ${TEST_INSTALL_DIR} \
&& cd ${TEST_INSTALL_DIR} \
&& autoreconf -vif \
&& ./configure
diff --git a/builds/hyrax/entrypoint.sh b/builds/hyrax/entrypoint.sh
index e9014137..5a61b959 100755
--- a/builds/hyrax/entrypoint.sh
+++ b/builds/hyrax/entrypoint.sh
@@ -123,11 +123,11 @@ fi
#
if test "${SERVER_HELP_EMAIL}" != "not_set" ; then
echo "Setting Admin Contact To: $SERVER_HELP_EMAIL"
- sed -i "s/admin.email.address@your.domain.name/$SERVER_HELP_EMAIL/" /etc/bes/bes.conf
+ sed -i "s/admin.email.address@your.domain.name/$SERVER_HELP_EMAIL/" $PREFIX/etc/bes/bes.conf
fi
if test "${FOLLOW_SYMLINKS}" != "not_set" ; then
echo "Setting BES FollowSymLinks to YES." >&2
- sed -i "s/^BES.Catalog.catalog.FollowSymLinks=No/BES.Catalog.catalog.FollowSymLinks=Yes/" usr/local/etc/bes/bes.conf
+ sed -i "s/^BES.Catalog.catalog.FollowSymLinks=No/BES.Catalog.catalog.FollowSymLinks=Yes/" $PREFIX/etc/bes/bes.conf
fi
echo "JAVA VERSION: "
From 87b3cb4c2d2b5913cbc1de54679854b4e2ab879d Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Thu, 29 Jan 2026 17:51:17 +0000
Subject: [PATCH 20/24] use installed java version
---
builds/hyrax/Dockerfile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index 60fc0f0a..e2be3fa3 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -17,6 +17,7 @@
# Add a default base image to keep docker from complaining,
# which is fine because if this ISN'T based on a given image tag,
# everything downstream will fail due to lack of bes, libdap, etc.
+# TODO: try FROM ${BES_IMAGE_TAG:-"$(some script that fails!)"} thanks ndp :)
ARG BES_IMAGE_TAG
FROM ${BES_IMAGE_TAG:-"rockylinux:8"}
@@ -121,6 +122,8 @@ RUN set -e && dnf install -y make curl unzip which autoconf automake emacs vim j
# Temporary Hack to fix broken OpenJDK-11.0.20.0.8-2
RUN set -e && dnf install -y tzdata-java
+RUN update-alternatives --set java java-11-openjdk.x86_64
+
RUN set -e && dnf clean all
RUN set -e && which diff
From ba424d4ba59991725c85932a12d145584558596c Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 2 Feb 2026 19:34:08 +0000
Subject: [PATCH 21/24] clean up
---
builds/hyrax/Dockerfile | 56 +++++++++++------------------------
travis/regression_test_script | 5 +++-
2 files changed, 21 insertions(+), 40 deletions(-)
diff --git a/builds/hyrax/Dockerfile b/builds/hyrax/Dockerfile
index e2be3fa3..1cdb2f12 100644
--- a/builds/hyrax/Dockerfile
+++ b/builds/hyrax/Dockerfile
@@ -110,59 +110,42 @@ RUN if [ $DEVELOPER_MODE = "true" ];then echo "DEVELOPER_MODE: ENABLED"; else ec
# Travis build (or at a later time). They need to be part of the container,
# however, to be run, so install them as part of this Dockerfile.
# RUN set -e && dnf update -y
-#TODO: prob don't need reinstallpython3.11 here, can use existing 3.12 in image
-RUN set -e && dnf install -y python3.11 \
- && python3 --version
RUN set -e && dnf install -y make curl unzip which autoconf automake emacs vim jq \
&& dnf install -y diffutils \
&& dnf install -y procps \
&& dnf install -y git bc valgrind gdb \
- && dnf install -y java-11-openjdk-devel
-# Temporary Hack to fix broken OpenJDK-11.0.20.0.8-2
-RUN set -e && dnf install -y tzdata-java
-
-RUN update-alternatives --set java java-11-openjdk.x86_64
-
-RUN set -e && dnf clean all
-RUN set -e && which diff
+ && dnf install -y java-11-openjdk-devel \
+ # Temporary Hack to fix broken OpenJDK-11.0.20.0.8-2
+ && dnf install -y tzdata-java \
+ # Actually *use* the newly-installed java 11
+ && update-alternatives --set java java-11-openjdk.x86_64 \
+ && dnf clean all
+# RUN set -e && which diff
################################################################
# Set up BES
#
-# BES is already installed by definition on the base image, but
-# we need to do some final installation steps that would otherwise
-# be handled by RPM installation
-
-RUN echo "besdaemon is here: "`which besdaemon` \
- && echo "whoami: "`whoami`
+# BES is already installed on the base image, but
+# we need to do some additional configuration (to match what was
+# previously handled by bes RPM installation)
# Add besd service to start at boot
RUN cp ${PREFIX}/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd \
&& chkconfig --add besd \
&& ldconfig
RUN chkconfig --list | grep besd \
- && echo "whoami: "`whoami`
+ && echo "whoami: "`whoami` \
+ && echo "besdaemon is here: "`which besdaemon`
-# # Add bes group and user (previously constructed via rpm installation)
-# RUN getent group bes >/dev/null || groupadd -r bes
-# RUN getent passwd bes >/dev/null || \
-# useradd -r -g bes -d /var/log/bes -s /sbin/nologin -c "BES daemon" bes
-
-# # Instead of rpm post:
-# RUN cp ./usr/local/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd
-# RUN chkconfig --add besd \
-# && ldconfig
-
-# More rpm-adapting hijinks
# Adapted from bes/spec.all_static.in
# Default macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
-RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
+RUN sed -i.dist \
-e 's:=.*/bes.log:=/var/log/bes/bes.log:' \
- -e 's:=.*/lib/bes:=$PREFIX/lib/bes:' \
- -e 's:=.*/share/bes:=$PREFIX/share/bes:' \
- # -e 's:=.*/share/hyrax:=/usr/share/hyrax:' \
+ -e 's:=.*/lib/bes:='"$PREFIX"'/lib/bes:' \
+ -e 's:=.*/share/bes:='"$PREFIX"'/share/bes:' \
+ -e 's:=.*/share/hyrax:='"$PREFIX"'/share/hyrax:' \
# -e 's:=/full/path/to/serverside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
# -e 's:=/full/path/to/serverside/key/file.pem:=/etc/pki/bes/public/file.pem:' \
# -e 's:=/full/path/to/clientside/certificate/file.pem:=/etc/pki/bes/cacerts/file.pem:' \
@@ -171,14 +154,9 @@ RUN sed -i.dist -e 's:=/tmp:=/var/cache/bes:' \
-e 's:=group_name:='"$USER"':' \
$PREFIX/etc/bes/bes.conf \
&& mkdir -p "/var/log/bes/" \
+ && touch "/var/log/bes/bes.log" \
&& sudo chown -R $USER:$USER "/var/log/bes/"
-# RUN chown -R bes /usr/local/etc/bes \
-# /usr/local/share/bes \
-# /usr/local/include/bes \
-# /usr/local/lib/bes \
-# /usr/local/var/run/bes
-
################################################################
# Install and Setup Tomcat
#
diff --git a/travis/regression_test_script b/travis/regression_test_script
index 3348221c..381b6bbb 100755
--- a/travis/regression_test_script
+++ b/travis/regression_test_script
@@ -12,6 +12,9 @@ end_point="${default_endpoint}"
netrc_file=""
tests=""
+# As set in bes Dockerfile
+BES_PREFIX="/root/install"
+
while getopts "ht:i:e:n:" OPTION; do
case $OPTION in
h)
@@ -119,7 +122,7 @@ echo "# Python Version: '$(python3 --version)'"
echo "# Acquiring bes.log from docker image."
docker cp hyrax:/var/log/bes/bes.log .
echo "# Acquiring beslog2json.py from docker image."
-docker cp hyrax:/usr/bin/beslog2json.py $(pwd)/beslog2json.py
+docker cp hyrax:$BES_PREFIX/bin/beslog2json.py $(pwd)/beslog2json.py
ls -l ./beslog2json.py
echo "############################################################################"
echo "# head ./bes.log"
From acd3b9fb69da25ea0ae58d55acb13b2ab1bba1f6 Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 2 Feb 2026 21:11:59 +0000
Subject: [PATCH 22/24] fix
---
el8-builds/hyrax/Dockerfile | 2 +-
travis/.gitignore | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
create mode 100644 travis/.gitignore
diff --git a/el8-builds/hyrax/Dockerfile b/el8-builds/hyrax/Dockerfile
index c2210baa..d8a935fa 100644
--- a/el8-builds/hyrax/Dockerfile
+++ b/el8-builds/hyrax/Dockerfile
@@ -180,7 +180,7 @@ RUN set -e \
# Add besd service to start at boot
RUN cp ${PREFIX}/etc/rc.d/init.d/besd /etc/rc.d/init.d/besd \
&& chkconfig --add besd \
- && ldconfig
+ && ldconfig \
&& chkconfig --list | grep besd \
&& echo "whoami: "`whoami` \
&& echo "besdaemon is here: "`which besdaemon`
diff --git a/travis/.gitignore b/travis/.gitignore
new file mode 100644
index 00000000..29ef7b17
--- /dev/null
+++ b/travis/.gitignore
@@ -0,0 +1,3 @@
+bes.json
+beslog2json.py
+cookies
\ No newline at end of file
From 1a64acc61fc74c08dda1cdb5ed71b8c016096aff Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 2 Feb 2026 21:14:23 +0000
Subject: [PATCH 23/24] undo non-hyrax change
---
el8-builds/besd/Dockerfile | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/el8-builds/besd/Dockerfile b/el8-builds/besd/Dockerfile
index 84037637..cb6bf753 100644
--- a/el8-builds/besd/Dockerfile
+++ b/el8-builds/besd/Dockerfile
@@ -56,6 +56,10 @@ RUN set -e && dnf install -y which bc emacs vim \
&& dnf update -y \
&& dnf clean all
+RUN set -e && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 \
+ && python3 -m pip install --upgrade pip \
+ && python3 -m pip install --no-cache-dir awscli
+
###############################################################
# Retrieve and install the latest libdap snapshot
RUN set -e \
From 63c7ad592adf623e3179eca05e8802a7047aed4a Mon Sep 17 00:00:00 2001
From: Hannah Robertson <1076701+hannahilea@users.noreply.github.com>
Date: Mon, 2 Feb 2026 21:14:23 +0000
Subject: [PATCH 24/24] post-merge fix
---
.gitignore | 8 ++++----
.travis.yml | 2 +-
el8-builds/hyrax/Dockerfile | 10 ----------
travis/.gitignore | 3 ---
4 files changed, 5 insertions(+), 18 deletions(-)
delete mode 100644 travis/.gitignore
diff --git a/.gitignore b/.gitignore
index 36128a2c..fd13538e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,7 +12,7 @@ logs
*.rpm
*.gz
*tar.gz.asc
-builds/cookies
-builds/bes.json
-builds/beslog2json.py
-apache_tomcat_keys
\ No newline at end of file
+apache_tomcat_keys
+travis/bes.json
+travis/beslog2json.py
+travis/cookies
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 02b4e472..1ec3f6d1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -271,7 +271,7 @@ jobs:
# deploy:
# - provider: script
-# script: bash ${TRAVIS_BUILD_DIR}/deploy_to_docker_hub.sh
+# script: bash ${TRAVIS_BUILD_DIR}/travis/deploy_to_docker_hub.sh
# on:
# branch: master
# condition: ${DEPLOY_ME} = "true"
diff --git a/el8-builds/hyrax/Dockerfile b/el8-builds/hyrax/Dockerfile
index d8a935fa..630ef7e4 100644
--- a/el8-builds/hyrax/Dockerfile
+++ b/el8-builds/hyrax/Dockerfile
@@ -160,16 +160,6 @@ RUN set -e \
&& echo "# aws cli version: $(aws --version)" \
&& dnf clean all
-################################################################
-# Install the latest libdap snapshot
-# - - - - - - - - - - - - - - - - - - - - -
-RUN set -e \
- && echo "Installing the libdap rpm: ${LIBDAP_RPM}" \
- && ls -l ./libdap* \
- && dnf -y install ./libdap-*.rpm \
- && rm -f ./${LIBDAP_RPM} \
- && dnf clean all
-
################################################################
# Set up BES
#
diff --git a/travis/.gitignore b/travis/.gitignore
deleted file mode 100644
index 29ef7b17..00000000
--- a/travis/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bes.json
-beslog2json.py
-cookies
\ No newline at end of file