summaryrefslogtreecommitdiff
path: root/share/spack/docker/package-index/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'share/spack/docker/package-index/Dockerfile')
-rw-r--r--share/spack/docker/package-index/Dockerfile30
1 files changed, 30 insertions, 0 deletions
diff --git a/share/spack/docker/package-index/Dockerfile b/share/spack/docker/package-index/Dockerfile
new file mode 100644
index 0000000000..3ffafe90e8
--- /dev/null
+++ b/share/spack/docker/package-index/Dockerfile
@@ -0,0 +1,30 @@
+# prepare the package index in form of JSON files
+FROM ubuntu:18.04 AS build-env
+
+ENV SPACK_ROOT=/opt/spack \
+ DEBIAN_FRONTEND=noninteractive
+
+COPY bin $SPACK_ROOT/bin
+COPY etc $SPACK_ROOT/etc
+COPY lib $SPACK_ROOT/lib
+COPY share $SPACK_ROOT/share
+COPY var $SPACK_ROOT/var
+
+RUN apt-get -yqq update \
+ && apt-get -yqq install \
+ bash jq python \
+ && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /build
+# single, large index file
+RUN $SPACK_ROOT/bin/spack list --format version_json > packages.json
+# individual packages split into a tree of :firstLetter/:packageName.json
+RUN $SPACK_ROOT/share/spack/docker/package-index/split.sh
+
+# nginx web service
+FROM nginx:mainline-alpine
+MAINTAINER Spack Maintainers <maintainers@spack.io>
+COPY --from=build-env --chown=nginx:nginx /build/packages /build/packages.json /usr/share/nginx/html/api/
+COPY share/spack/docker/package-index/cors-header.conf /etc/nginx/conf.d/
+
+CMD ["nginx", "-g", "daemon off;"]