Spaces:
Running
Running
| FROM debian:bookworm-slim AS elasticsearch | |
| ARG ES_VERSION=8.19.20 | |
| ARG ES_SHA512=1c416956374360cec621bedcd293b6365e87dc3a911353bc7b17087f977f2426a3f98a7d8c2add14324207e5a44afbe87cd236b977f5fd3051cb2999899b2def | |
| ARG DEBIAN_FRONTEND=noninteractive | |
| ENV ES_HOME=/opt/elasticsearch | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| curl \ | |
| tar \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY scripts/install-elasticsearch.sh /usr/local/bin/install-elasticsearch | |
| RUN chmod +x /usr/local/bin/install-elasticsearch \ | |
| && /usr/local/bin/install-elasticsearch | |
| FROM node:22-bookworm-slim AS static-assets | |
| ARG ESBUILD_VERSION=0.28.2 | |
| WORKDIR /build | |
| RUN npm install --global "esbuild@${ESBUILD_VERSION}" \ | |
| && test "$(esbuild --version)" = "${ESBUILD_VERSION}" | |
| COPY static/ /build/static/ | |
| RUN mkdir -p /out \ | |
| && esbuild static/app.js --minify --target=es2019 --charset=utf8 --legal-comments=none --outfile=/out/app.js \ | |
| && esbuild static/style.css --minify --outfile=/out/style.css \ | |
| && esbuild static/sw.js --minify --target=es2019 --charset=utf8 --legal-comments=none --outfile=/out/sw.js \ | |
| && cp static/index.html /out/index.html | |
| FROM python:3.11-slim-bookworm | |
| ARG DEBIAN_FRONTEND=noninteractive | |
| ENV ARCHIVE_START=0 | |
| ENV ARCHIVE_END=31 | |
| ENV ES_HOME=/opt/elasticsearch | |
| ENV ES_JAVA_OPTS="-Xms1g -Xmx1g" | |
| ENV PORT=7860 | |
| WORKDIR /app | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| git \ | |
| tini \ | |
| && useradd --system --no-create-home --shell /usr/sbin/nologin elasticsearch \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY --from=elasticsearch --chown=elasticsearch:elasticsearch /opt/elasticsearch/ /opt/elasticsearch/ | |
| COPY requirements.txt /app/requirements.txt | |
| RUN pip install --no-cache-dir -r /app/requirements.txt | |
| COPY app/ /app/app/ | |
| COPY --from=static-assets /out/ /app/static/ | |
| COPY --chmod=755 scripts/start.sh scripts/wait-for-es.sh /app/scripts/ | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/usr/bin/tini", "--"] | |
| CMD ["/app/scripts/start.sh"] | |