diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b540cd4352866534a7cc32e32f3237219abdfd20..f502e6c824e23886496204650563f9d623762fb7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -248,14 +248,17 @@ jug_dev:default:
   parallel:
     matrix:
       - BASE_IMAGE: debian_stable_base
-        BUILD_IMAGE: jug_dev
+        BUILD_IMAGE: jug_
         PLATFORM: linux/amd64,linux/arm64/v8
+        ENV: [dev, prod]
 #      - BASE_IMAGE: oneapi_base
 #        BUILD_IMAGE: jug_dev_oneapi
 #        PLATFORM: linux/amd64
+#        ENV: [prod]
 #      - BASE_IMAGE: cuda_base_new
 #        BUILD_IMAGE: jug_dev_cuda
 #        PLATFORM: linux/amd64
+#        ENV: [prod]
   extends: .build
   stage: jug
   needs:
@@ -267,11 +270,11 @@ jug_dev:default:
       export SPACK_VERSION ;
       cat mirrors.yaml.in | envsubst > mirrors.yaml ;
       docker buildx build --push ${BUILD_OPTIONS}
-                   --tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${INTERNAL_TAG}
+                   --tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}${ENV}:${INTERNAL_TAG}
                    ${EXPORT_TAG:+
-                     ${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${EXPORT_TAG}}
-                     ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
-                     ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
+                     ${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}${ENV}:${EXPORT_TAG}}
+                     ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}${ENV}:${EXPORT_TAG}}
+                     ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}${ENV}:${EXPORT_TAG}}
                    }
                    --file containers/jug/dev.Dockerfile
                    --platform ${PLATFORM}
@@ -287,6 +290,7 @@ jug_dev:default:
                    --build-arg S3_ACCESS_KEY=${S3_ACCESS_KEY}
                    --build-arg S3_SECRET_KEY=${S3_SECRET_KEY}
                    --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
+                   --build-arg ENV=${ENV}
                    --build-arg jobs=${JOBS}
                    --build-context spack-environment=spack-environment
                    --secret id=mirrors,src=mirrors.yaml
diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml
index 79e0c6a5e4907eca17198f1876e160f88469d897..2f99b0bc51a38407018c4de62d54c52c307b5941 100644
--- a/spack-environment/packages.yaml
+++ b/spack-environment/packages.yaml
@@ -108,7 +108,7 @@ packages:
   geant4:
     require:
     - '@11.1.1'
-    - cxxstd=17 +opengl -vecgeom +x11 +qt +threads
+    - cxxstd=17 +opengl -vecgeom +x11 +qt +threads -vtk
   graphviz:
     require:
     - '@8.0.1'
@@ -159,6 +159,7 @@ packages:
   opencascade:
     require:
     - '@7.7.1'
+    - -vtk
   osg-ca-certs:
     require:
     - '@1.109.igtf.1.117'
diff --git a/spack-environment/prod/spack.yaml b/spack-environment/prod/spack.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..241352aa43fc85520aa9e6b2f775c77fe1258ae9
--- /dev/null
+++ b/spack-environment/prod/spack.yaml
@@ -0,0 +1,25 @@
+spack:
+  include: 
+  - ../concretizer.yaml
+  - ../packages.yaml
+  specs:
+    - acts
+    - cmake
+    - dd4hep
+    - edm4eic
+    - fastjet
+    - fjcontrib
+    - gaudi
+    - geant4
+    - hepmc3
+    - intel-tbb
+    - irt
+    - jana2
+    - npsim
+    - py-boto3
+    - py-jinja2
+    - py-jinja2-cli
+    - py-pip
+    - root
+    - xrootd
+  view: false