diff --git a/containers/oneapi/onexl.Dockerfile b/containers/oneapi/onexl.Dockerfile
index 5db29d7f55c14073660a0a88742cde0ba40378cb..c267ba60c52742ba8adf2ad9e465b38aae5ffc0b 100644
--- a/containers/oneapi/onexl.Dockerfile
+++ b/containers/oneapi/onexl.Dockerfile
@@ -12,12 +12,14 @@ FROM ${DOCKER_REGISTRY}oneapi_jug_dev:${INTERNAL_TAG}
 ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects"
 ARG JUGGLER_VERSION="master"
 ARG NPDET_VERSION="master"
+ARG EICD_VERSION="master"
 
 ## version will automatically bust cache for nightly, as it includes
 ## the date
 ARG JUG_VERSION=1
 
 ADD ${EICWEB}/18/repository/tree?ref=${NPDET_VERSION} /tmp/18.json
+ADD ${EICWEB}/373/repository/tree?ref=${EICD_VERSION} /tmp/373.json
 RUN cd /tmp                                                                     \
  && echo " - jug_xl: ${JUG_VERSION}" >> /etc/jug_info                           \
  && echo "INSTALLING NPDET"                                                     \
@@ -28,7 +30,17 @@ RUN cd /tmp
  && pushd NPDet                                                                 \
  && echo " - NPDet: ${NPDET_VERSION}-$(git rev-parse HEAD)">> /etc/jug_info     \
  && popd                                                                        \
- && rm -rf build NPDet
+ && rm -rf build NPDet                                                          \
+ && cd /tmp                                                                     \
+ && echo "INSTALLING EICD"                                                      \
+ && git clone -b ${EICD_VERSION} --depth 1                                      \
+        https://eicweb.phy.anl.gov/EIC/eicd.git                                 \
+ && cmake -B build -S eicd -DCMAKE_CXX_STANDARD=17                              \
+ && cmake --build build -j12 -- install                                         \
+ && pushd eicd                                                                  \
+ && echo " - EICD: ${EICD_VERSION}-$(git rev-parse HEAD)">> /etc/jug_info       \
+ && popd                                                                        \
+ && rm -rf build eicd
 
 ADD ${EICWEB}/369/repository/tree?ref=${JUGGLER_VERSION} /tmp/369.json
 RUN cd /tmp                                                                     \
@@ -44,25 +56,12 @@ RUN cd /tmp
  && popd                                                                        \
  && rm -rf build juggler
 
-## also install detector/ip geometries into opt
-ARG NIGHTLY=''
-ADD ${EICWEB}/473/repository/tree?ref=master /tmp/473.json
-ADD ${EICWEB}/452/repository/tree?ref=master /tmp/452.json
-COPY setup_detectors.py /tmp
-COPY detectors.yaml /tmp
-RUN cd /tmp                                                                     \
- && [ "z$NIGHTLY" = "z1" ] && NIGHTLY_FLAG="--nightly" || NIGHTLY_FLAG=""       \
- && /tmp/setup_detectors.py --prefix /opt/detector --config /tmp/detectors.yaml \
-                         $NIGHTLY_FLAG                                          \
- && rm /tmp/setup_detectors.py
-
 ## Install benchmarks into the container
-
 ARG BENCHMARK_COM_VERSION="master"
 ARG BENCHMARK_DET_VERSION="master"
 ARG BENCHMARK_REC_VERSION="master"
 ARG BENCHMARK_PHY_VERSION="master"
-
+## cache bust when updated repositories
 ADD ${EICWEB}/458/repository/tree?ref=${BENCHMARK_COM_VERSION} /tmp/485.json
 ADD ${EICWEB}/399/repository/tree?ref=${BENCHMARK_DET_VERSION} /tmp/399.json
 ADD ${EICWEB}/408/repository/tree?ref=${BENCHMARK_REC_VERSION} /tmp/408.json 
@@ -88,12 +87,11 @@ RUN mkdir -p /opt/benchmarks
  && ln -sf ../common_bench physics_benchmarks/.local
 
 ## Install campaigns into the container
-
 ARG CAMPAIGNS_SINGLE_VERSION="main"
 ARG CAMPAIGNS_HEPMC3_VERSION="main"
 ARG CAMPAIGNS_CONDOR_VERSION="main"
 ARG CAMPAIGNS_SLURM_VERSION="main"
-
+## cache bust when updated repositories
 ADD ${EICWEB}/482/repository/tree?ref=${CAMPAIGNS_SINGLE_VERSION} /tmp/482.json
 ADD ${EICWEB}/483/repository/tree?ref=${CAMPAIGNS_HEPMC3_VERSION} /tmp/483.json
 ADD ${EICWEB}/484/repository/tree?ref=${CAMPAIGNS_CONDOR_VERSION} /tmp/484.json
@@ -114,3 +112,20 @@ RUN mkdir -p /opt/campaigns
  && cd /opt/campaigns                                                           \
  && git clone -b ${CAMPAIGNS_SLURM_VERSION} --depth 1                           \
         https://eicweb.phy.anl.gov/EIC/campaigns/slurm.git
+
+## also install detector/ip geometries into opt
+ARG NIGHTLY=''
+## cache bust when updated repositories
+# - just master on eicweb (FIXME too narrow)
+ADD ${EICWEB}/473/repository/tree?ref=master /tmp/473.json
+ADD ${EICWEB}/452/repository/tree?ref=master /tmp/452.json
+# - all branches for ip6 and epic on github
+ADD https://api.github.com/repos/eic/ip6 /tmp/ip6.json
+ADD https://api.github.com/repos/eic/epic /tmp/epic.json
+COPY setup_detectors.py /tmp
+COPY detectors.yaml /tmp
+RUN cd /tmp                                                                     \
+ && [ "z$NIGHTLY" = "z1" ] && NIGHTLY_FLAG="--nightly" || NIGHTLY_FLAG=""       \
+ && /tmp/setup_detectors.py --prefix /opt/detector --config /tmp/detectors.yaml \
+                         $NIGHTLY_FLAG                                          \
+ && rm /tmp/setup_detectors.py